diff --git a/.github/workflows/makefile.yml b/.github/workflows/makefile.yml index 72e24062..08f9be58 100644 --- a/.github/workflows/makefile.yml +++ b/.github/workflows/makefile.yml @@ -19,7 +19,7 @@ jobs: with: python-version: '3.9' - run: | - python3 "${GITHUB_WORKSPACE}/setup.py" install + python3 -m pip install -r "${GITHUB_WORKSPACE}/requirements.txt" - run: | python3 "${GITHUB_WORKSPACE}/setup.py" install_lib - run: | @@ -31,10 +31,15 @@ jobs: - run: | artifact_file_name="${{ env.ARTIFACT_BASE_NAME }}-${{ env.software_version }}.zip" terraform_artifact_file_name="terraform_${{ env.ARTIFACT_BASE_NAME }}-${{ env.software_version }}.zip" + terraform_marketplace_artifact_file_name="terraform_marketplace-${{ env.software_version }}.zip" + echo "ARTIFACT_FILE=$artifact_file_name" >> $GITHUB_ENV echo "TERRAFORM_ARTIFACT_FILE=$terraform_artifact_file_name" >> $GITHUB_ENV + echo "TERRAFORM_MARKETPLACE_ARTIFACT_FILE=$terraform_marketplace_artifact_file_name" >> $GITHUB_ENV + cp "${GITHUB_WORKSPACE}/cumulus_lambda_functions_deployment.zip" "$artifact_file_name" cp "${GITHUB_WORKSPACE}/terraform_cumulus_lambda_functions_deployment.zip" "$terraform_artifact_file_name" + cp "${GITHUB_WORKSPACE}/terraform_marketplace_deployment.zip" "$terraform_marketplace_artifact_file_name" - name: Create Release id: create_release if: ${{ contains(github.ref, 'master') }} @@ -86,6 +91,17 @@ jobs: asset_path: "${{ env.TERRAFORM_ARTIFACT_FILE }}" asset_name: "${{ env.TERRAFORM_ARTIFACT_FILE }}" asset_content_type: application/zip + - name: Upload PreRelease Asset TERRAFORM_MARKETPLACE_ARTIFACT_FILE + id: upload-prerelease-asset-TERRAFORM_MARKETPLACE_ARTIFACT_FILE +# if: ${{ contains(github.ref, 'main') }} + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_prerelease.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps + asset_path: "${{ env.TERRAFORM_MARKETPLACE_ARTIFACT_FILE }}" + asset_name: "${{ env.TERRAFORM_MARKETPLACE_ARTIFACT_FILE }}" + asset_content_type: application/zip - name: Upload Release Asset 1 id: upload-release-asset-1 if: ${{ contains(github.ref, 'master') }} @@ -107,4 +123,15 @@ jobs: upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps asset_path: "${{ env.TERRAFORM_ARTIFACT_FILE }}" asset_name: "${{ env.TERRAFORM_ARTIFACT_FILE }}" + asset_content_type: application/zip + - name: Upload Release Asset TERRAFORM_MARKETPLACE_ARTIFACT_FILE + id: upload-release-asset-TERRAFORM_MARKETPLACE_ARTIFACT_FILE + if: ${{ contains(github.ref, 'master') }} + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps + asset_path: "${{ env.TERRAFORM_MARKETPLACE_ARTIFACT_FILE }}" + asset_name: "${{ env.TERRAFORM_MARKETPLACE_ARTIFACT_FILE }}" asset_content_type: application/zip \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 4bc19b4c..d1b6051e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,30 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [7.9.0] - 2024-07-01 +### Changed +- [#385](https://github.com/unity-sds/unity-data-services/pull/385) feat: different web service for stac browser + +## [7.8.1] - 2024-06-27 +### Fixed +- [#373](https://github.com/unity-sds/unity-data-services/pull/373) fix: updating path for httpd testing + +## [7.8.0] - 2024-06-27 +### Changed +- [#372](https://github.com/unity-sds/unity-data-services/pull/372) feat: market place bucket + +## [7.7.0] - 2024-05-13 +### Changed +- [#369](https://github.com/unity-sds/unity-data-services/pull/369) feat: add cnm response archival lambda + +## [7.6.0] - 2024-05-13 +### Changed +- [#368](https://github.com/unity-sds/unity-data-services/pull/368) feat: adding automated ingestion lambda + +## [7.5.0] - 2024-04-24 +### Changed +- [#365](https://github.com/unity-sds/unity-data-services/pull/365) feat: add granuile cnm ingester tf + ## [7.4.0] - 2024-04-15 ### Changed - [#361](https://github.com/unity-sds/unity-data-services/pull/361) feat: uploading successful feature collection to s3 diff --git a/README.md b/README.md index 67d9bdb8..3f8a05af 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ -
This repository contains source code that handles data ingest, data catalog, data search and data access that complies to OGC DAPA and STAC specifications.
+
This repository contains source code that handles data ingest, data catalog, data search and data access that complies to OGC DAPA and STAC specifications
diff --git a/ci.cd/Makefile b/ci.cd/Makefile index 7590edfd..139ed30a 100644 --- a/ci.cd/Makefile +++ b/ci.cd/Makefile @@ -21,7 +21,7 @@ upload_lambda: aws --profile saml-pub s3 cp cumulus_lambda_functions_deployment.zip s3://am-uds-dev-cumulus-tf-state/unity_cumulus_lambda/ upload_lambda_mcp_dev: - aws s3 cp cumulus_lambda_functions_deployment.zip s3://uds-dev-cumulus-public/unity_cumulus_lambda/ + aws s3 cp tf-module/unity-cumulus/build/cumulus_lambda_functions_deployment.zip s3://uds-dev-cumulus-public/unity_cumulus_lambda/ update_lambda_function_mcp_dev_6: aws lambda update-function-code --s3-key unity_cumulus_lambda/cumulus_lambda_functions_deployment.zip --s3-bucket uds-dev-cumulus-public --function-name arn:aws:lambda:us-west-2:237868187491:function:uds-dev-cumulus-metadata_s4pa_generate_cmr --publish &>/dev/null update_lambda_function_mcp_dev_7: @@ -49,6 +49,13 @@ update_lambda_function_mcp_sbx_7: update_lambda_function_mcp_sbx_8: aws lambda update-function-code --s3-key unity_cumulus_lambda/cumulus_lambda_functions_deployment.zip --s3-bucket uds-dev-cumulus-public --function-name arn:aws:lambda:us-west-2:237868187491:function:uds-sbx-cumulus-granules_to_es --publish &>/dev/null + +update_lambda_function_uds-sbx-cumulus-granules_cnm_response_writer: + aws lambda update-function-code --s3-key unity_cumulus_lambda/cumulus_lambda_functions_deployment.zip --s3-bucket uds-dev-cumulus-public --function-name arn:aws:lambda:us-west-2:237868187491:function:uds-sbx-cumulus-granules_cnm_response_writer --publish &>/dev/null + +update_lambda_function_mcp_sbx_ingester: + aws lambda update-function-code --s3-key unity_cumulus_lambda/cumulus_lambda_functions_deployment.zip --s3-bucket uds-dev-cumulus-public --function-name arn:aws:lambda:us-west-2:237868187491:function:uds-sbx-cumulus-granules_cnm_ingester --publish &>/dev/null + mcp_sbx: upload_lambda_mcp_dev update_lambda_function_mcp_sbx_7 update_lambda_function_mcp_sbx_8 mcp_sbx_fastapi: upload_lambda_mcp_dev update_lambda_function_mcp_sbx_uds_api diff --git a/ci.cd/create_aws_lambda_zip.sh b/ci.cd/create_aws_lambda_zip.sh index 51052696..734e7d5a 100644 --- a/ci.cd/create_aws_lambda_zip.sh +++ b/ci.cd/create_aws_lambda_zip.sh @@ -4,9 +4,11 @@ apt-get update -y && apt-get install zip -y ZIP_NAME='cumulus_lambda_functions_deployment.zip' TERRAFORM_ZIP_NAME='terraform_cumulus_lambda_functions_deployment.zip' +TERRAFORM_MARKETPLACE_ZIP_NAME='terraform_marketplace_deployment.zip' project_root_dir=${GITHUB_WORKSPACE} zip_file="${project_root_dir}/$ZIP_NAME" ; # save the result file in current working directory terraform_zip_file="${project_root_dir}/$TERRAFORM_ZIP_NAME" ; # save the result file in current working directory +terraform_marketplace_zip_file="${project_root_dir}/$TERRAFORM_MARKETPLACE_ZIP_NAME" ; # save the result file in current working directory source_dir=`python3 -c 'import sysconfig; print(sysconfig.get_paths()["purelib"])'` @@ -22,6 +24,9 @@ cp ${zip_file} build/ cd $project_root_dir/tf-module/unity-cumulus zip -9 ${terraform_zip_file} * **/* +cd $project_root_dir/tf-module/marketplace +zip -9 ${terraform_marketplace_zip_file} * **/* + # github.job github_branch=${GITHUB_REF##*/} software_version_trailing="" diff --git a/cumulus_lambda_functions/granules_cnm_ingester/__init__.py b/cumulus_lambda_functions/granules_cnm_ingester/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/cumulus_lambda_functions/granules_cnm_ingester/granules_cnm_ingester_logic.py b/cumulus_lambda_functions/granules_cnm_ingester/granules_cnm_ingester_logic.py new file mode 100644 index 00000000..47bad3ad --- /dev/null +++ b/cumulus_lambda_functions/granules_cnm_ingester/granules_cnm_ingester_logic.py @@ -0,0 +1,193 @@ +import os +import time + +from cumulus_lambda_functions.lib.aws.aws_message_transformers import AwsMessageTransformers +from cumulus_lambda_functions.lib.uds_db.uds_collections import UdsCollections + +from cumulus_lambda_functions.stage_in_out.stage_in_out_utils import StageInOutUtils + +from cumulus_lambda_functions.uds_api.dapa.collections_dapa_cnm import CollectionsDapaCnm + +from cumulus_lambda_functions.cumulus_stac.unity_collection_stac import UnityCollectionStac +from cumulus_lambda_functions.uds_api.dapa.collections_dapa_creation import CollectionDapaCreation +from cumulus_lambda_functions.cumulus_stac.item_transformer import ItemTransformer +from pystac import ItemCollection, Item +from cumulus_lambda_functions.lib.utils.file_utils import FileUtils +from cumulus_lambda_functions.lib.lambda_logger_generator import LambdaLoggerGenerator +from cumulus_lambda_functions.lib.aws.aws_s3 import AwsS3 + +LOGGER = LambdaLoggerGenerator.get_logger(__name__, LambdaLoggerGenerator.get_level_from_env()) + +""" +TODO + +UNITY_DEFAULT_PROVIDER +CUMULUS_WORKFLOW_NAME +REPORT_TO_EMS +CUMULUS_WORKFLOW_SQS_URL +CUMULUS_LAMBDA_PREFIX +ES_URL +ES_PORT +SNS_TOPIC_ARN +""" +class GranulesCnmIngesterLogic: + def __init__(self): + self.__s3 = AwsS3() + self.__successful_features_json = None + self.__successful_features: ItemCollection = None + self.__collection_id = None + self.__chunk_size = StageInOutUtils.CATALOG_DEFAULT_CHUNK_SIZE + if 'UNITY_DEFAULT_PROVIDER' not in os.environ: + raise ValueError(f'missing UNITY_DEFAULT_PROVIDER') + self.__default_provider = os.environ.get('UNITY_DEFAULT_PROVIDER') + self.__uds_collection = UdsCollections(es_url=os.getenv('ES_URL'), es_port=int(os.getenv('ES_PORT', '443'))) + + @property + def successful_features_json(self): + return self.__successful_features_json + + @successful_features_json.setter + def successful_features_json(self, val): + """ + :param val: + :return: None + """ + self.__successful_features_json = val + return + + @property + def collection_id(self): + return self.__collection_id + + @collection_id.setter + def collection_id(self, val): + """ + :param val: + :return: None + """ + self.__collection_id = val + return + + @property + def successful_features(self): + return self.__successful_features + + @successful_features.setter + def successful_features(self, val): + """ + :param val: + :return: None + """ + self.__successful_features = val + return + + def load_successful_features_s3(self, successful_features_s3_url): + self.__s3.set_s3_url(successful_features_s3_url) + if not self.__s3.exists(self.__s3.target_bucket, self.__s3.target_key): + LOGGER.error(f'missing successful_features: {successful_features_s3_url}') + raise ValueError(f'missing successful_features: {successful_features_s3_url}') + local_successful_features = self.__s3.download('/tmp') + self.__successful_features_json = FileUtils.read_json(local_successful_features) + FileUtils.remove_if_exists(local_successful_features) + self.__successful_features = ItemCollection.from_dict(self.__successful_features_json) + return + + def validate_granules(self): + if self.successful_features is None: + raise RuntimeError(f'NULL successful_features') + missing_granules = [] + for each_granule in self.successful_features.items: + missing_assets = [] + for each_asset_name, each_asset in each_granule.assets.items(): + temp_bucket, temp_key = self.__s3.split_s3_url(each_asset.href) + if not self.__s3.exists(temp_bucket, temp_key): + missing_assets.append({each_asset_name: each_asset.href}) + if len(missing_assets) > 0: + missing_granules.append({ + 'granule_id': each_granule.id, + 'missing_assets': missing_assets + }) + if len(missing_granules) > 0: + LOGGER.error(f'missing_granules: {missing_granules}') + raise ValueError(f'missing_granules: {missing_granules}') + return + + def extract_collection_id(self): + if self.successful_features is None: + raise RuntimeError(f'NULL successful_features') + if len(self.successful_features.items) < 1: + LOGGER.error(f'not required to process. No Granules: {self.successful_features.to_dict(False)}') + return + self.collection_id = self.successful_features.items[0].collection_id + return + + def has_collection(self): + uds_collection_result = self.__uds_collection.get_collection(self.collection_id) + return len(uds_collection_result) > 0 + + def create_collection(self): + if self.collection_id is None: + raise RuntimeError(f'NULL collection_id') + if self.has_collection(): + LOGGER.debug(f'{self.collection_id} already exists. continuing..') + return + # ref: https://github.com/unity-sds/unity-py/blob/0.4.0/unity_sds_client/services/data_service.py + dapa_collection = UnityCollectionStac() \ + .with_id(self.collection_id) \ + .with_graule_id_regex("^test_file.*$") \ + .with_granule_id_extraction_regex("(^test_file.*)(\\.nc|\\.nc\\.cas|\\.cmr\\.xml)") \ + .with_title(f'Collection: {self.collection_id}') \ + .with_process('stac') \ + .with_provider(self.__default_provider) \ + .add_file_type("test_file01.nc", "^test_file.*\\.nc$", 'unknown_bucket', 'application/json', 'root') \ + .add_file_type("test_file01.nc", "^test_file.*\\.nc$", 'protected', 'data', 'item') \ + .add_file_type("test_file01.nc.cas", "^test_file.*\\.nc.cas$", 'protected', 'metadata', 'item') \ + .add_file_type("test_file01.nc.cmr.xml", "^test_file.*\\.nc.cmr.xml$", 'protected', 'metadata', 'item') \ + .add_file_type("test_file01.nc.stac.json", "^test_file.*\\.nc.stac.json$", 'protected', 'metadata', 'item') + + stac_collection = dapa_collection.start() + creation_result = CollectionDapaCreation(stac_collection).create() + if creation_result['statusCode'] >= 400: + raise RuntimeError(f'failed to create collection: {self.collection_id}. details: {creation_result["body"]}') + time.sleep(3) # cool off period before checking DB + if not self.has_collection(): + LOGGER.error(f'missing collection. (failed to create): {self.collection_id}') + raise ValueError(f'missing collection. (failed to create): {self.collection_id}') + return + + def send_cnm_msg(self): + LOGGER.debug(f'starting ingest_cnm_dapa_actual') + try: + errors = [] + for i, features_chunk in enumerate(StageInOutUtils.chunk_list(self.successful_features_json['features'], self.__chunk_size)): + try: + LOGGER.debug(f'working on chunk_index {i}') + dapa_body = { + "provider_id": self.__default_provider, + "features": features_chunk + } + collections_dapa_cnm = CollectionsDapaCnm(dapa_body) + cnm_result = collections_dapa_cnm.start() + if cnm_result['statusCode'] != 200: + errors.extend(features_chunk) + except Exception as e1: + LOGGER.exception(f'failed to queue CNM process.') + errors.extend(features_chunk) + except Exception as e: + LOGGER.exception('failed to ingest to CNM') + raise ValueError(f'failed to ingest to CNM: {e}') + if len(errors) > 0: + raise RuntimeError(f'failures during CNM ingestion: {errors}') + return + + def start(self, event): + LOGGER.debug(f'event: {event}') + sns_msg = AwsMessageTransformers().sqs_sns(event) + s3_details = AwsMessageTransformers().get_s3_from_sns(sns_msg) + s3_url = f's3://{s3_details["bucket"]}/{s3_details["key"]}' + self.load_successful_features_s3(s3_url) + self.validate_granules() + self.extract_collection_id() + self.create_collection() + self.send_cnm_msg() + return diff --git a/cumulus_lambda_functions/granules_cnm_ingester/lambda_function.py b/cumulus_lambda_functions/granules_cnm_ingester/lambda_function.py new file mode 100644 index 00000000..b5f7cbaf --- /dev/null +++ b/cumulus_lambda_functions/granules_cnm_ingester/lambda_function.py @@ -0,0 +1,16 @@ +import json + +from cumulus_lambda_functions.granules_cnm_ingester.granules_cnm_ingester_logic import GranulesCnmIngesterLogic +from cumulus_lambda_functions.lib.lambda_logger_generator import LambdaLoggerGenerator + + +def lambda_handler(event, context): + """ + :param event: + :param context: + :return: + {'Records': [{'messageId': '6ff7c6fd-4053-4ab4-bc12-c042be1ed275', 'receiptHandle': 'AQEBYASiFPjQT5JBI2KKCTF/uQhHfJt/tHhgucslQQdvkNVxcXCNi2E5Ux4U9N0eu7RfvlnvtycjUh0gdL7jIeoyH+VRKSF61uAJuT4p31BsNe0GYu49N9A6+kxjP/RrykR7ZofmQRdHToX1ugRc76SMRic4H/ZZ89YAHA2QeomJFMrYywIxlk8OAzYaBf2dQI7WexjY5u1CW00XNMbTGyTo4foVPxcSn6bdFpfgxW/L7yJMX/0YQvrA9ruiuQ+lrui+6fWYh5zEk3f5v1bYtUQ6DtyyfbtMHZQJTJpUlWAFRzzN+3melilH7FySyOGDXhPb0BOSzmdKq9wBbfLW/YPb7l99ejq4GfRfj8LyI4EtB96vTeUw4LCgUqbZcBrxbGBLUXMacweh+gCjHav9ylqr2SeOiqG3vWPq9pwFYQIDqNE=', 'body': '{\n "Type" : "Notification",\n "MessageId" : "33e1075a-435c-5217-a33d-59fae85e19b2",\n "TopicArn" : "arn:aws:sns:us-west-2:237868187491:uds-sbx-cumulus-granules_cnm_ingester",\n "Subject" : "Amazon S3 Notification",\n "Message" : "{\\"Service\\":\\"Amazon S3\\",\\"Event\\":\\"s3:TestEvent\\",\\"Time\\":\\"2024-04-22T18:13:22.416Z\\",\\"Bucket\\":\\"uds-sbx-cumulus-staging\\",\\"RequestId\\":\\"DQ4T0GRVFPSX45C9\\",\\"HostId\\":\\"gHBFnYNmfnGDZBmqoQwA3RScjtjBk5lr426moGxu8IDpe5UhWAqNTxHqilWBoPN1njzIrzNrf8c=\\"}",\n "Timestamp" : "2024-04-22T18:13:22.434Z",\n "SignatureVersion" : "1",\n "Signature" : "RvSxqpU7J7CCJXbin9cXqTxzjMjgAUFtk/n454mTMcOe5x3Ay1w4AHfzyeYQCFBdLHNBa8n3OdMDoDlJqyVQMb8k+nERaiZWN2oqFVDRqT9pqSr89b+4FwlhPv6TYy2pBa/bgjZ4cOSYsey1uSQ3hjl0idfssvuV5cCRxQScbA+yu8Gcv9K7Oqgy01mC0sDHiuPIifhFXxupG5ygbjqoHIB+1gdMEbBwyixoY5GOpHM/O2uHNF+dJDjax1WMxQ2FzVjiFeCa+tNcjovF059+tx2v1YmDq/kEAFrN6DAtP6R4zKag62P9jkvjU/wHYJ2jjXmZAqoG+nuzAo24HiZPSw==",\n "SigningCertURL" : "https://sns.us-west-2.amazonaws.com/SimpleNotificationService-60eadc530605d63b8e62a523676ef735.pem",\n "UnsubscribeURL" : "https://sns.us-west-2.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:us-west-2:237868187491:uds-sbx-cumulus-granules_cnm_ingester:76cbefa1-addf-45c2-97e1-ae16986b195b"\n}', 'attributes': {'ApproximateReceiveCount': '1', 'SentTimestamp': '1713809602474', 'SenderId': 'AIDAIYLAVTDLUXBIEIX46', 'ApproximateFirstReceiveTimestamp': '1713809602483'}, 'messageAttributes': {}, 'md5OfBody': 'c6d06d1b742ad5bd2cfe5f542640aad2', 'eventSource': 'aws:sqs', 'eventSourceARN': 'arn:aws:sqs:us-west-2:237868187491:uds-sbx-cumulus-granules_cnm_ingester', 'awsRegion': 'us-west-2'}]} + """ + LambdaLoggerGenerator.remove_default_handlers() + GranulesCnmIngesterLogic().start(event) + return diff --git a/cumulus_lambda_functions/granules_cnm_response_writer/__init__.py b/cumulus_lambda_functions/granules_cnm_response_writer/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/cumulus_lambda_functions/granules_cnm_response_writer/cnm_result_writer.py b/cumulus_lambda_functions/granules_cnm_response_writer/cnm_result_writer.py new file mode 100644 index 00000000..ce590c3a --- /dev/null +++ b/cumulus_lambda_functions/granules_cnm_response_writer/cnm_result_writer.py @@ -0,0 +1,90 @@ +import json + +from cumulus_lambda_functions.lib.json_validator import JsonValidator +from cumulus_lambda_functions.lib.lambda_logger_generator import LambdaLoggerGenerator +from cumulus_lambda_functions.lib.aws.aws_message_transformers import AwsMessageTransformers +from cumulus_lambda_functions.lib.aws.aws_s3 import AwsS3 + +LOGGER = LambdaLoggerGenerator.get_logger(__name__, LambdaLoggerGenerator.get_level_from_env()) + + +class CnmResultWriter: + def __init__(self): + self.__s3 = AwsS3() + self.__cnm_response_schema = { + 'type': 'object', + 'required': ['collection', 'product', 'submissionTime'], + 'properties': { + 'submissionTime': {'type': 'string'}, + 'collection': {'type': 'string'}, + 'product': { + 'type': 'object', + 'required': ['name', 'files'], + 'properties': { + 'name': {'type': 'string'}, + 'files': { + 'type': 'array', + 'minItems': 1, + 'items': { + 'type': 'object', + 'required': ['name', 'uri'], + 'properties': { + 'name': {'type': 'string'}, + 'uri': {'type': 'string'}, + } + }, + } + } + } + } + } + self.__cnm_response = {} + self.__s3_url = None + + @property + def s3_url(self): + return self.__s3_url + + @s3_url.setter + def s3_url(self, val): + """ + :param val: + :return: None + """ + self.__s3_url = val + return + + @property + def cnm_response(self): + return self.__cnm_response + + @cnm_response.setter + def cnm_response(self, val): + """ + :param val: + :return: None + """ + self.__cnm_response = val + return + + def extract_s3_location(self): + result = JsonValidator(self.__cnm_response_schema).validate(self.cnm_response) + if result is not None: + LOGGER.error(f'invalid JSON: {result}. request_body: {self.cnm_response}') + raise ValueError(f'invalid JSON: {result}. request_body: {self.cnm_response}') + response_filename = f'{self.cnm_response["product"]["name"]}.{self.cnm_response["submissionTime"]}.cnm.json' + parsed_url = self.cnm_response['product']['files'][0]['uri'].split('//')[1] + s3_url = parsed_url.split('/') + s3_url[-1] = response_filename + self.__s3_url = 's3://' + '/'.join(s3_url[1:]) + LOGGER.debug(f'extracted s3_url: {self.__s3_url}') + return self + + def start(self, event): + LOGGER.debug(f'event: {event}') + sns_msg = AwsMessageTransformers().sqs_sns(event) + LOGGER.debug(f'sns_msg: {sns_msg}') + self.cnm_response = sns_msg + self.extract_s3_location() + self.__s3.set_s3_url(self.s3_url).upload_bytes(json.dumps(self.cnm_response, indent=4).encode()) + return diff --git a/cumulus_lambda_functions/granules_cnm_response_writer/lambda_function.py b/cumulus_lambda_functions/granules_cnm_response_writer/lambda_function.py new file mode 100644 index 00000000..9cb4c044 --- /dev/null +++ b/cumulus_lambda_functions/granules_cnm_response_writer/lambda_function.py @@ -0,0 +1,15 @@ +import json + +from cumulus_lambda_functions.granules_cnm_response_writer.cnm_result_writer import CnmResultWriter +from cumulus_lambda_functions.lib.lambda_logger_generator import LambdaLoggerGenerator + + +def lambda_handler(event, context): + """ + :param event: + :param context: + :return: + """ + LambdaLoggerGenerator.remove_default_handlers() + CnmResultWriter().start(event) + return diff --git a/cumulus_lambda_functions/lib/aws/aws_message_transformers.py b/cumulus_lambda_functions/lib/aws/aws_message_transformers.py index 0fe119aa..101b383b 100644 --- a/cumulus_lambda_functions/lib/aws/aws_message_transformers.py +++ b/cumulus_lambda_functions/lib/aws/aws_message_transformers.py @@ -1,4 +1,5 @@ import json +from urllib.parse import unquote from cumulus_lambda_functions.lib.json_validator import JsonValidator @@ -29,8 +30,15 @@ class AwsMessageTransformers: "Type": {"type": "string"}, "MessageId": {"type": "string"}, "TopicArn": {"type": "string"}, + "Subject": {"type": "string"}, + "Timestamp": {"type": "string"}, + "SignatureVersion": {"type": "string"}, + "Signature": {"type": "string"}, + "SigningCertURL": {"type": "string"}, + "UnsubscribeURL": {"type": "string"}, "Message": {"type": "string"}, - } + }, + "required": ["Message"] } S3_RECORD_SCHEMA = { @@ -41,22 +49,25 @@ class AwsMessageTransformers: 'maxItems': 1, 'items': { 'type': 'object', - 'properties': {'s3': { - 'type': 'object', - 'properties': { - 'bucket': { - 'type': 'object', - 'properties': {'name': {'type': 'string', 'minLength': 1}}, - 'required': ['name'] - }, - 'object': { - 'type': 'object', - 'properties': {'key': {'type': 'string', 'minLength': 1}}, - 'required': ['key'] - }}, - 'required': ['bucket', 'object'] - }}, - 'required': ['s3'] + 'properties': { + 'eventName': {'type': 'string'}, + 's3': { + 'type': 'object', + 'properties': { + 'bucket': { + 'type': 'object', + 'properties': {'name': {'type': 'string', 'minLength': 1}}, + 'required': ['name'] + }, + 'object': { + 'type': 'object', + 'properties': {'key': {'type': 'string', 'minLength': 1}}, + 'required': ['key'] + }}, + 'required': ['bucket', 'object'] + } + }, + 'required': ['eventName', 's3'] } }}, 'required': ['Records'] @@ -74,3 +85,14 @@ def sqs_sns(self, raw_msg: json): sns_msg_body = sqs_msg_body['Message'] sns_msg_body = json.loads(sns_msg_body) return sns_msg_body + + def get_s3_from_sns(self, sns_msg_body): + result = JsonValidator(self.S3_RECORD_SCHEMA).validate(sns_msg_body) + if result is not None: + raise ValueError(f'sqs_msg did not pass SQS_MSG_SCHEMA: {result}') + s3_summary = { + 'eventName': sns_msg_body['Records'][0]['eventName'], + 'bucket': sns_msg_body['Records'][0]['s3']['bucket']['name'], + 'key': unquote(sns_msg_body['Records'][0]['s3']['object']['key'].replace('+', ' ')), + } + return s3_summary \ No newline at end of file diff --git a/cumulus_lambda_functions/lib/aws/aws_s3.py b/cumulus_lambda_functions/lib/aws/aws_s3.py index 4467c931..f4cbc4ae 100644 --- a/cumulus_lambda_functions/lib/aws/aws_s3.py +++ b/cumulus_lambda_functions/lib/aws/aws_s3.py @@ -58,6 +58,13 @@ def __upload_to_s3(self, bucket, prefix, file_path, delete_files=False, add_size raise e return f's3://{bucket}/{s3_key}' + def exists(self, base_path: str, relative_path: str): + try: + response = self.__s3_client.head_object(Bucket=base_path, Key=relative_path) + except: + return False + return True + def upload(self, file_path: str, base_path: str, relative_parent_path: str, delete_files: bool, s3_name: Union[str, None] = None, obj_tags: dict = {}, overwrite: bool = False): s3_url = self.__upload_to_s3(base_path, relative_parent_path, file_path, delete_files, True, obj_tags, s3_name) diff --git a/cumulus_lambda_functions/lib/constants.py b/cumulus_lambda_functions/lib/constants.py index c79428a5..010bc6fa 100644 --- a/cumulus_lambda_functions/lib/constants.py +++ b/cumulus_lambda_functions/lib/constants.py @@ -18,5 +18,6 @@ class Constants: PARAM_STORE = 'PARAM_STORE' DAPA_API_KEY = 'DAPA_API' DAPA_API_PREIFX_KEY = 'DAPA_API_PREIFX_KEY' + DAPA_API_URL_BASE = 'DAPA_API_URL_BASE' CORS_ORIGINS = 'CORS_ORIGINS' PARALLEL_COUNT = 'PARALLEL_COUNT' diff --git a/cumulus_lambda_functions/lib/uds_db/uds_collections.py b/cumulus_lambda_functions/lib/uds_db/uds_collections.py index d37f625c..17cf06c4 100644 --- a/cumulus_lambda_functions/lib/uds_db/uds_collections.py +++ b/cumulus_lambda_functions/lib/uds_db/uds_collections.py @@ -70,6 +70,25 @@ def add_collection(self, collection_id: str, start_time: int, end_time: int, bbo self.__es.index_one(indexing_dict, collection_id, DBConstants.collections_index) return self + def get_collection(self, collection_id: str): + authorized_collection_ids_dsl = { + 'size': 20, + 'query': { + 'bool': { + 'must': [ + {'term': {DBConstants.collection_id: {'value': collection_id}}} + ] + } + }, + 'sort': [ + {DBConstants.collection_id: {'order': 'asc'}} + ] + } + LOGGER.debug(f'authorized_collection_ids_dsl: {authorized_collection_ids_dsl}') + authorized_collection_ids = self.__es.query(authorized_collection_ids_dsl, DBConstants.collections_index) + authorized_collection_ids = [k['_source'] for k in authorized_collection_ids['hits']['hits']] + return authorized_collection_ids + def get_collections(self, collection_regex: list): # temp_dsl = { # 'query': {'match_all': {}}, diff --git a/cumulus_lambda_functions/lib/utils/file_utils.py b/cumulus_lambda_functions/lib/utils/file_utils.py index 2e56fce7..ba063aef 100644 --- a/cumulus_lambda_functions/lib/utils/file_utils.py +++ b/cumulus_lambda_functions/lib/utils/file_utils.py @@ -21,6 +21,7 @@ from functools import partial from pathlib import Path from subprocess import Popen, PIPE +from distutils.dir_util import copy_tree class FileUtils: @@ -43,6 +44,11 @@ def mk_dir_p(dir_path): Path(dir_path).mkdir(parents=True, exist_ok=True) return + @staticmethod + def copy_dir(source_dir, dest_dir): + copy_tree(source_dir, dest_dir) + return + @staticmethod def gunzip_file_os(zipped_file_path, output_file_path=None): if not FileUtils.file_exist(zipped_file_path): diff --git a/cumulus_lambda_functions/stage_in_out/catalog_granules_unity.py b/cumulus_lambda_functions/stage_in_out/catalog_granules_unity.py index ed1691f0..53811749 100644 --- a/cumulus_lambda_functions/stage_in_out/catalog_granules_unity.py +++ b/cumulus_lambda_functions/stage_in_out/catalog_granules_unity.py @@ -19,7 +19,6 @@ class CatalogGranulesUnity(CatalogGranulesAbstract): DELAY_SECOND = 'DELAY_SECOND' REPEAT_TIMES = 'REPEAT_TIMES' CHUNK_SIZE = 'CHUNK_SIZE' - DEFAULT_CHUNK_SIZE = 5 def __init__(self) -> None: super().__init__() @@ -27,15 +26,15 @@ def __init__(self) -> None: self.__verify_ssl = True self.__delaying_second = 30 self.__repeating_times = 0 - self.__chunk_size = self.DEFAULT_CHUNK_SIZE + self.__chunk_size = StageInOutUtils.CATALOG_DEFAULT_CHUNK_SIZE def __set_props_from_env(self): missing_keys = [k for k in [self.UPLOADED_FILES_JSON, self.PROVIDER_ID_KEY] if k not in os.environ] if len(missing_keys) > 0: raise ValueError(f'missing environment keys: {missing_keys}') self._retrieve_stac_json() - self.__chunk_size = int(os.environ.get(self.CHUNK_SIZE, self.DEFAULT_CHUNK_SIZE)) - self.__chunk_size = self.__chunk_size if self.__chunk_size > 0 else self.DEFAULT_CHUNK_SIZE + self.__chunk_size = int(os.environ.get(self.CHUNK_SIZE, StageInOutUtils.CATALOG_DEFAULT_CHUNK_SIZE)) + self.__chunk_size = self.__chunk_size if self.__chunk_size > 0 else StageInOutUtils.CATALOG_DEFAULT_CHUNK_SIZE self.__provider_id = os.environ.get(self.PROVIDER_ID_KEY) self.__verify_ssl = os.environ.get(self.VERIFY_SSL_KEY, 'TRUE').strip().upper() == 'TRUE' self.__delaying_second = int(os.environ.get(self.DELAY_SECOND, '30')) diff --git a/cumulus_lambda_functions/stage_in_out/stage_in_out_utils.py b/cumulus_lambda_functions/stage_in_out/stage_in_out_utils.py index 70d1b6ea..3de73a1c 100644 --- a/cumulus_lambda_functions/stage_in_out/stage_in_out_utils.py +++ b/cumulus_lambda_functions/stage_in_out/stage_in_out_utils.py @@ -10,6 +10,7 @@ class StageInOutUtils: OUTPUT_FILE = 'OUTPUT_FILE' + CATALOG_DEFAULT_CHUNK_SIZE = 5 @staticmethod def write_output_to_file(output_json: Union[dict, str, list]): diff --git a/cumulus_lambda_functions/uds_api/fast_api_utils.py b/cumulus_lambda_functions/uds_api/fast_api_utils.py index e3903542..5631a94a 100644 --- a/cumulus_lambda_functions/uds_api/fast_api_utils.py +++ b/cumulus_lambda_functions/uds_api/fast_api_utils.py @@ -2,6 +2,8 @@ import json import os +from cumulus_lambda_functions.lib.utils.file_utils import FileUtils + from cumulus_lambda_functions.lib.constants import Constants from cumulus_lambda_functions.lib.lambda_logger_generator import LambdaLoggerGenerator @@ -42,3 +44,49 @@ def get_cors_origins(): @staticmethod def get_api_base_prefix(): return os.environ.get(Constants.DAPA_API_PREIFX_KEY) if Constants.DAPA_API_PREIFX_KEY in os.environ else WebServiceConstants.API_PREFIX + + @staticmethod + def get_api_url_base(): + if Constants.DAPA_API_URL_BASE not in os.environ: + raise ValueError(f'missing DAPA_API_URL_BASE in ENV') + dapa_api_base = os.environ.get(Constants.DAPA_API_URL_BASE) + dapa_api_base = dapa_api_base[:-1] if dapa_api_base.endswith('/') else dapa_api_base + return dapa_api_base + + @staticmethod + def replace_in_file(file_path, old_string, new_string): + try: + with open(file_path, 'r') as file: + content = file.read() + + content = content.replace(old_string, new_string) + + with open(file_path, 'w') as file: + file.write(content) + except Exception as e: + print(f'{file_path}.. {str(e)}') + return + + @staticmethod + def replace_in_folder(folder_path, old_string, new_string): + for dirpath, _, filenames in os.walk(folder_path): + for filename in filenames: + file_path = os.path.join(dirpath, filename) + FastApiUtils.replace_in_file(file_path, old_string, new_string) + return + + @staticmethod + def prep_stac_browser(): + api_base_prefix = FastApiUtils.get_api_base_prefix() + original_static_parent_dir = f'{os.environ.get(WebServiceConstants.STATIC_PARENT_DIR, WebServiceConstants.STATIC_PARENT_DIR_DEFAULT)}stac_browser' + temp_static_parent_dir = f'/tmp/stac_browser' + FileUtils.copy_dir(original_static_parent_dir, temp_static_parent_dir) + + stac_browser_prefix = f'/{api_base_prefix}/{WebServiceConstants.STAC_BROWSER}' + # Cannot change READ ONLY system in lambda. Need a workaround. + FastApiUtils.replace_in_folder(temp_static_parent_dir, WebServiceConstants.STAC_BROWSER_REPLACING_PREFIX, stac_browser_prefix) + + stac_browser_settings = {'catalogUrl': f'{FastApiUtils.get_api_url_base()}/misc/catalog_list/'} + FastApiUtils.replace_in_folder(temp_static_parent_dir, f'"{WebServiceConstants.SETTING_PLACEHOLDER}"', json.dumps(stac_browser_settings)) + FastApiUtils.replace_in_folder(temp_static_parent_dir, f"'{WebServiceConstants.SETTING_PLACEHOLDER}'", json.dumps(stac_browser_settings)) + return stac_browser_prefix, temp_static_parent_dir diff --git a/cumulus_lambda_functions/uds_api/misc_api.py b/cumulus_lambda_functions/uds_api/misc_api.py new file mode 100644 index 00000000..4d5dbbe2 --- /dev/null +++ b/cumulus_lambda_functions/uds_api/misc_api.py @@ -0,0 +1,62 @@ +import json +import os +from time import time +from typing import Union + +from starlette.responses import Response, RedirectResponse +from cumulus_lambda_functions.uds_api.fast_api_utils import FastApiUtils + +from cumulus_lambda_functions.lib.lambda_logger_generator import LambdaLoggerGenerator + +from fastapi import APIRouter, HTTPException, Request +from cumulus_lambda_functions.uds_api.web_service_constants import WebServiceConstants + + +LOGGER = LambdaLoggerGenerator.get_logger(__name__, LambdaLoggerGenerator.get_level_from_env()) + +router = APIRouter( + prefix=f'/{WebServiceConstants.MISC}', + tags=["Granules CRUD API"], + responses={404: {"description": "Not found"}}, +) + + +@router.get(f'/catalog_list') +@router.get(f'/catalog_list/') +async def stac_entry(request: Request, response: Response): + base_url = os.environ.get(WebServiceConstants.BASE_URL, f'{request.url.scheme}://{request.url.netloc}') + base_url = base_url[:-1] if base_url.endswith('/') else base_url + base_url = base_url if base_url.startswith('http') else f'https://{base_url}' + api_base_prefix = FastApiUtils.get_api_base_prefix() + stac_browser_expecting_result = [{ + "id": 1, + "url": f'{base_url}/{api_base_prefix}/catalog', + "slug": "unity-ds", + "title": "Unity DS (Venue: TODO)", + "summary": "Unity DS collections & granules", + "access": "public", + "created": "2023-03-16T09:15:31.242Z", + "updated": "2023-03-16T09:15:31.242Z", + "isPrivate": False, + "isApi": False, + "accessInfo": None + }] + return stac_browser_expecting_result + +@router.get(f'/stac_entry') +@router.get(f'/stac_entry/') +async def stac_entry(request: Request, response: Response): + request_headers = dict(request.headers) + LOGGER.debug(f'stac_entry - request_headers: {request_headers}') + print(request_headers) + base_url = os.environ.get(WebServiceConstants.BASE_URL, f'{request.url.scheme}://{request.url.netloc}') + base_url = base_url[:-1] if base_url.endswith('/') else base_url + base_url = base_url if base_url.startswith('http') else f'https://{base_url}' + api_base_prefix = FastApiUtils.get_api_base_prefix() + ending_url = f'{WebServiceConstants.STAC_BROWSER}/' if str(request.url).endswith('/') else WebServiceConstants.STAC_BROWSER + redirect_response = RedirectResponse(f'/{api_base_prefix}/{ending_url}') + if 'oidc_access_token' in request_headers: + # TODO not sure cookie settings need to be stricter + redirect_response.set_cookie(key="unity_token", value=request_headers['oidc_access_token'], httponly=False, secure=False, samesite='strict') # missing , domain=base_url + redirect_response.set_cookie(key="test1", value=f"{time()}", httponly=False, secure=False, samesite='strict') # missing , domain=base_url + return redirect_response diff --git a/cumulus_lambda_functions/uds_api/routes_api.py b/cumulus_lambda_functions/uds_api/routes_api.py index b21e5ea4..ca8c70fc 100644 --- a/cumulus_lambda_functions/uds_api/routes_api.py +++ b/cumulus_lambda_functions/uds_api/routes_api.py @@ -1,7 +1,7 @@ from fastapi import APIRouter from cumulus_lambda_functions.uds_api import collections_api, granules_api, auth_admin_api, system_admin_api, \ - custom_meta_admin_api, catalog_api + custom_meta_admin_api, catalog_api, misc_api # from ideas_api.src.endpoints import job_endpoints # from ideas_api.src.endpoints import process_endpoints @@ -16,4 +16,5 @@ main_router.include_router(catalog_api.router) main_router.include_router(granules_api.router) main_router.include_router(custom_meta_admin_api.router) +main_router.include_router(misc_api.router) diff --git a/cumulus_lambda_functions/uds_api/stac_browser/css/7944.72c8c98f.css b/cumulus_lambda_functions/uds_api/stac_browser/css/9044.72c8c98f.css similarity index 100% rename from cumulus_lambda_functions/uds_api/stac_browser/css/7944.72c8c98f.css rename to cumulus_lambda_functions/uds_api/stac_browser/css/9044.72c8c98f.css diff --git a/cumulus_lambda_functions/uds_api/stac_browser/index.html b/cumulus_lambda_functions/uds_api/stac_browser/index.html index 0148a45c..80e1b2ad 100644 --- a/cumulus_lambda_functions/uds_api/stac_browser/index.html +++ b/cumulus_lambda_functions/uds_api/stac_browser/index.html @@ -1 +1 @@ -STAC Browser
\ No newline at end of file +STAC Browser
\ No newline at end of file diff --git a/cumulus_lambda_functions/uds_api/stac_browser/js/3912.637fb6c7.js b/cumulus_lambda_functions/uds_api/stac_browser/js/3912.900420c2.js similarity index 72% rename from cumulus_lambda_functions/uds_api/stac_browser/js/3912.637fb6c7.js rename to cumulus_lambda_functions/uds_api/stac_browser/js/3912.900420c2.js index 29cdee78..1beef431 100644 --- a/cumulus_lambda_functions/uds_api/stac_browser/js/3912.637fb6c7.js +++ b/cumulus_lambda_functions/uds_api/stac_browser/js/3912.900420c2.js @@ -1,2 +1,2 @@ -(self["webpackChunk_radiantearth_stac_browser"]=self["webpackChunk_radiantearth_stac_browser"]||[]).push([[3912],{22768:function(t,e,r){"use strict";var n=r(96604),o=r(4572),i=o(n("String.prototype.indexOf"));t.exports=function(t,e){var r=n(t,!!e);return"function"===typeof r&&i(t,".prototype.")>-1?o(r):r}},4572:function(t,e,r){"use strict";var n=r(30268),o=r(96604),i=r(52392),a=r(76556),u=o("%Function.prototype.apply%"),c=o("%Function.prototype.call%"),f=o("%Reflect.apply%",!0)||n.call(c,u),p=o("%Object.defineProperty%",!0),y=o("%Math.max%");if(p)try{p({},"a",{value:1})}catch(s){p=null}t.exports=function(t){if("function"!==typeof t)throw new a("a function is required");var e=f(n,c,arguments);return i(e,1+y(0,t.length-(arguments.length-1)),!0)};var l=function(){return f(n,u,arguments)};p?p(t.exports,"apply",{value:l}):t.exports.apply=l},5456:function(t,e,r){"use strict";var n=r(71188)(),o=r(96604),i=n&&o("%Object.defineProperty%",!0);if(i)try{i({},"a",{value:1})}catch(f){i=!1}var a=r(17668),u=r(76556),c=r(80872);t.exports=function(t,e,r){if(!t||"object"!==typeof t&&"function"!==typeof t)throw new u("`obj` must be an object or a function`");if("string"!==typeof e&&"symbol"!==typeof e)throw new u("`property` must be a string or a symbol`");if(arguments.length>3&&"boolean"!==typeof arguments[3]&&null!==arguments[3])throw new u("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&"boolean"!==typeof arguments[4]&&null!==arguments[4])throw new u("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&"boolean"!==typeof arguments[5]&&null!==arguments[5])throw new u("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&"boolean"!==typeof arguments[6])throw new u("`loose`, if provided, must be a boolean");var n=arguments.length>3?arguments[3]:null,o=arguments.length>4?arguments[4]:null,f=arguments.length>5?arguments[5]:null,p=arguments.length>6&&arguments[6],y=!!c&&c(t,e);if(i)i(t,e,{configurable:null===f&&y?y.configurable:!f,enumerable:null===n&&y?y.enumerable:!n,value:r,writable:null===o&&y?y.writable:!o});else{if(!p&&(n||o||f))throw new a("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.");t[e]=r}}},59576:function(t){"use strict";t.exports=EvalError},42772:function(t){"use strict";t.exports=Error},75360:function(t){"use strict";t.exports=RangeError},62380:function(t){"use strict";t.exports=ReferenceError},17668:function(t){"use strict";t.exports=SyntaxError},76556:function(t){"use strict";t.exports=TypeError},10568:function(t){"use strict";t.exports=URIError},7040:function(t,e,r){"use strict";var n=r(18528),o=Object.prototype.toString,i=Object.prototype.hasOwnProperty,a=function(t,e,r){for(var n=0,o=t.length;n=3&&(i=r),"[object Array]"===o.call(t)?a(t,e,i):"string"===typeof t?u(t,e,i):c(t,e,i)};t.exports=f},97840:function(t){"use strict";var e="Function.prototype.bind called on incompatible ",r=Object.prototype.toString,n=Math.max,o="[object Function]",i=function(t,e){for(var r=[],n=0;n1&&"boolean"!==typeof e)throw new f('"allowMissing" argument must be a boolean');if(null===B(/^%?[^%]*%?$/,t))throw new c("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var r=R(t),n=r.length>0?r[0]:"",o=M("%"+n+"%",e),i=o.name,a=o.value,u=!1,p=o.alias;p&&(n=p[0],F(r,x([0,1],p)));for(var y=1,l=!0;y=r.length){var h=s(a,g);l=!!h,a=l&&"get"in h&&!("originalValue"in h.get)?h.get:a[g]}else l=E(a,g),a=a[g];l&&!u&&(w[i]=a)}}return a}},80872:function(t,e,r){"use strict";var n=r(96604),o=n("%Object.getOwnPropertyDescriptor%",!0);if(o)try{o([],"length")}catch(i){o=null}t.exports=o},71188:function(t,e,r){"use strict";var n=r(96604),o=n("%Object.defineProperty%",!0),i=function(){if(o)try{return o({},"a",{value:1}),!0}catch(t){return!1}return!1};i.hasArrayLengthDefineBug=function(){if(!i())return null;try{return 1!==o([],"length",{value:1}).length}catch(t){return!0}},t.exports=i},37636:function(t){"use strict";var e={foo:{}},r=Object;t.exports=function(){return{__proto__:e}.foo===e.foo&&!({__proto__:null}instanceof r)}},24308:function(t,e,r){"use strict";var n="undefined"!==typeof Symbol&&Symbol,o=r(31968);t.exports=function(){return"function"===typeof n&&("function"===typeof Symbol&&("symbol"===typeof n("foo")&&("symbol"===typeof Symbol("bar")&&o())))}},31968:function(t){"use strict";t.exports=function(){if("function"!==typeof Symbol||"function"!==typeof Object.getOwnPropertySymbols)return!1;if("symbol"===typeof Symbol.iterator)return!0;var t={},e=Symbol("test"),r=Object(e);if("string"===typeof e)return!1;if("[object Symbol]"!==Object.prototype.toString.call(e))return!1;if("[object Symbol]"!==Object.prototype.toString.call(r))return!1;var n=42;for(e in t[e]=n,t)return!1;if("function"===typeof Object.keys&&0!==Object.keys(t).length)return!1;if("function"===typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(t).length)return!1;var o=Object.getOwnPropertySymbols(t);if(1!==o.length||o[0]!==e)return!1;if(!Object.prototype.propertyIsEnumerable.call(t,e))return!1;if("function"===typeof Object.getOwnPropertyDescriptor){var i=Object.getOwnPropertyDescriptor(t,e);if(i.value!==n||!0!==i.enumerable)return!1}return!0}},53804:function(t,e,r){"use strict";var n=r(31968);t.exports=function(){return n()&&!!Symbol.toStringTag}},15176:function(t,e,r){"use strict";var n=Function.prototype.call,o=Object.prototype.hasOwnProperty,i=r(30268);t.exports=i.call(n,o)},18248:function(t){"function"===typeof Object.create?t.exports=function(t,e){e&&(t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:t.exports=function(t,e){if(e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}}},22816:function(t,e,r){"use strict";var n=r(53804)(),o=r(22768),i=o("Object.prototype.toString"),a=function(t){return!(n&&t&&"object"===typeof t&&Symbol.toStringTag in t)&&"[object Arguments]"===i(t)},u=function(t){return!!a(t)||null!==t&&"object"===typeof t&&"number"===typeof t.length&&t.length>=0&&"[object Array]"!==i(t)&&"[object Function]"===i(t.callee)},c=function(){return a(arguments)}();a.isLegacyArguments=u,t.exports=c?a:u},18528:function(t){"use strict";var e,r,n=Function.prototype.toString,o="object"===typeof Reflect&&null!==Reflect&&Reflect.apply;if("function"===typeof o&&"function"===typeof Object.defineProperty)try{e=Object.defineProperty({},"length",{get:function(){throw r}}),r={},o((function(){throw 42}),null,e)}catch(m){m!==r&&(o=null)}else o=null;var i=/^\s*class\b/,a=function(t){try{var e=n.call(t);return i.test(e)}catch(r){return!1}},u=function(t){try{return!a(t)&&(n.call(t),!0)}catch(e){return!1}},c=Object.prototype.toString,f="[object Object]",p="[object Function]",y="[object GeneratorFunction]",l="[object HTMLAllCollection]",s="[object HTML document.all class]",g="[object HTMLCollection]",b="function"===typeof Symbol&&!!Symbol.toStringTag,d=!(0 in[,]),h=function(){return!1};if("object"===typeof document){var A=document.all;c.call(A)===c.call(document.all)&&(h=function(t){if((d||!t)&&("undefined"===typeof t||"object"===typeof t))try{var e=c.call(t);return(e===l||e===s||e===g||e===f)&&null==t("")}catch(r){}return!1})}t.exports=o?function(t){if(h(t))return!0;if(!t)return!1;if("function"!==typeof t&&"object"!==typeof t)return!1;try{o(t,null,e)}catch(n){if(n!==r)return!1}return!a(t)&&u(t)}:function(t){if(h(t))return!0;if(!t)return!1;if("function"!==typeof t&&"object"!==typeof t)return!1;if(b)return u(t);if(a(t))return!1;var e=c.call(t);return!(e!==p&&e!==y&&!/^\[object HTML/.test(e))&&u(t)}},77700:function(t,e,r){"use strict";var n,o=Object.prototype.toString,i=Function.prototype.toString,a=/^\s*(?:function)?\*/,u=r(53804)(),c=Object.getPrototypeOf,f=function(){if(!u)return!1;try{return Function("return function*() {}")()}catch(t){}};t.exports=function(t){if("function"!==typeof t)return!1;if(a.test(i.call(t)))return!0;if(!u){var e=o.call(t);return"[object GeneratorFunction]"===e}if(!c)return!1;if("undefined"===typeof n){var r=f();n=!!r&&c(r)}return c(t)===n}},83340:function(t,e,r){"use strict";var n=r(8488);t.exports=function(t){return!!n(t)}},52392:function(t,e,r){"use strict";var n=r(96604),o=r(5456),i=r(71188)(),a=r(80872),u=r(76556),c=n("%Math.floor%");t.exports=function(t,e){if("function"!==typeof t)throw new u("`fn` is not a function");if("number"!==typeof e||e<0||e>4294967295||c(e)!==e)throw new u("`length` must be a positive 32-bit integer");var r=arguments.length>2&&!!arguments[2],n=!0,f=!0;if("length"in t&&a){var p=a(t,"length");p&&!p.configurable&&(n=!1),p&&!p.writable&&(f=!1)}return(n||f||!r)&&(i?o(t,"length",e,!0,!0):o(t,"length",e)),t}},12848:function(t){t.exports=function(t){return t&&"object"===typeof t&&"function"===typeof t.copy&&"function"===typeof t.fill&&"function"===typeof t.readUInt8}},59032:function(t,e,r){"use strict";var n=r(22816),o=r(77700),i=r(8488),a=r(83340);function u(t){return t.call.bind(t)}var c="undefined"!==typeof BigInt,f="undefined"!==typeof Symbol,p=u(Object.prototype.toString),y=u(Number.prototype.valueOf),l=u(String.prototype.valueOf),s=u(Boolean.prototype.valueOf);if(c)var g=u(BigInt.prototype.valueOf);if(f)var b=u(Symbol.prototype.valueOf);function d(t,e){if("object"!==typeof t)return!1;try{return e(t),!0}catch(r){return!1}}function h(t){return"undefined"!==typeof Promise&&t instanceof Promise||null!==t&&"object"===typeof t&&"function"===typeof t.then&&"function"===typeof t.catch}function A(t){return"undefined"!==typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(t):a(t)||z(t)}function m(t){return"Uint8Array"===i(t)}function v(t){return"Uint8ClampedArray"===i(t)}function w(t){return"Uint16Array"===i(t)}function S(t){return"Uint32Array"===i(t)}function j(t){return"Int8Array"===i(t)}function O(t){return"Int16Array"===i(t)}function P(t){return"Int32Array"===i(t)}function E(t){return"Float32Array"===i(t)}function x(t){return"Float64Array"===i(t)}function F(t){return"BigInt64Array"===i(t)}function I(t){return"BigUint64Array"===i(t)}function U(t){return"[object Map]"===p(t)}function B(t){return"undefined"!==typeof Map&&(U.working?U(t):t instanceof Map)}function _(t){return"[object Set]"===p(t)}function k(t){return"undefined"!==typeof Set&&(_.working?_(t):t instanceof Set)}function R(t){return"[object WeakMap]"===p(t)}function M(t){return"undefined"!==typeof WeakMap&&(R.working?R(t):t instanceof WeakMap)}function D(t){return"[object WeakSet]"===p(t)}function T(t){return D(t)}function N(t){return"[object ArrayBuffer]"===p(t)}function W(t){return"undefined"!==typeof ArrayBuffer&&(N.working?N(t):t instanceof ArrayBuffer)}function G(t){return"[object DataView]"===p(t)}function z(t){return"undefined"!==typeof DataView&&(G.working?G(t):t instanceof DataView)}e.isArgumentsObject=n,e.isGeneratorFunction=o,e.isTypedArray=a,e.isPromise=h,e.isArrayBufferView=A,e.isUint8Array=m,e.isUint8ClampedArray=v,e.isUint16Array=w,e.isUint32Array=S,e.isInt8Array=j,e.isInt16Array=O,e.isInt32Array=P,e.isFloat32Array=E,e.isFloat64Array=x,e.isBigInt64Array=F,e.isBigUint64Array=I,U.working="undefined"!==typeof Map&&U(new Map),e.isMap=B,_.working="undefined"!==typeof Set&&_(new Set),e.isSet=k,R.working="undefined"!==typeof WeakMap&&R(new WeakMap),e.isWeakMap=M,D.working="undefined"!==typeof WeakSet&&D(new WeakSet),e.isWeakSet=T,N.working="undefined"!==typeof ArrayBuffer&&N(new ArrayBuffer),e.isArrayBuffer=W,G.working="undefined"!==typeof ArrayBuffer&&"undefined"!==typeof DataView&&G(new DataView(new ArrayBuffer(1),0,1)),e.isDataView=z;var C="undefined"!==typeof SharedArrayBuffer?SharedArrayBuffer:void 0;function V(t){return"[object SharedArrayBuffer]"===p(t)}function $(t){return"undefined"!==typeof C&&("undefined"===typeof V.working&&(V.working=V(new C)),V.working?V(t):t instanceof C)}function J(t){return"[object AsyncFunction]"===p(t)}function H(t){return"[object Map Iterator]"===p(t)}function L(t){return"[object Set Iterator]"===p(t)}function q(t){return"[object Generator]"===p(t)}function Z(t){return"[object WebAssembly.Module]"===p(t)}function K(t){return d(t,y)}function Q(t){return d(t,l)}function X(t){return d(t,s)}function Y(t){return c&&d(t,g)}function tt(t){return f&&d(t,b)}function et(t){return K(t)||Q(t)||X(t)||Y(t)||tt(t)}function rt(t){return"undefined"!==typeof Uint8Array&&(W(t)||$(t))}e.isSharedArrayBuffer=$,e.isAsyncFunction=J,e.isMapIterator=H,e.isSetIterator=L,e.isGeneratorObject=q,e.isWebAssemblyCompiledModule=Z,e.isNumberObject=K,e.isStringObject=Q,e.isBooleanObject=X,e.isBigIntObject=Y,e.isSymbolObject=tt,e.isBoxedPrimitive=et,e.isAnyArrayBuffer=rt,["isProxy","isExternal","isModuleNamespaceObject"].forEach((function(t){Object.defineProperty(e,t,{enumerable:!1,value:function(){throw new Error(t+" is not supported in userland")}})}))},93912:function(t,e,r){var n=Object.getOwnPropertyDescriptors||function(t){for(var e=Object.keys(t),r={},n=0;n=i)return t;switch(t){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(e){return"[Circular]"}default:return t}})),u=n[r];r=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),m(r)?n.showHidden=r:r&&e._extend(n,r),P(n.showHidden)&&(n.showHidden=!1),P(n.depth)&&(n.depth=2),P(n.colors)&&(n.colors=!1),P(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=f),l(n,t,n.depth)}function f(t,e){var r=c.styles[e];return r?"["+c.colors[r][0]+"m"+t+"["+c.colors[r][1]+"m":t}function p(t,e){return t}function y(t){var e={};return t.forEach((function(t,r){e[t]=!0})),e}function l(t,r,n){if(t.customInspect&&r&&U(r.inspect)&&r.inspect!==e.inspect&&(!r.constructor||r.constructor.prototype!==r)){var o=r.inspect(n,t);return j(o)||(o=l(t,o,n)),o}var i=s(t,r);if(i)return i;var a=Object.keys(r),u=y(a);if(t.showHidden&&(a=Object.getOwnPropertyNames(r)),I(r)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return g(r);if(0===a.length){if(U(r)){var c=r.name?": "+r.name:"";return t.stylize("[Function"+c+"]","special")}if(E(r))return t.stylize(RegExp.prototype.toString.call(r),"regexp");if(F(r))return t.stylize(Date.prototype.toString.call(r),"date");if(I(r))return g(r)}var f,p="",m=!1,v=["{","}"];if(A(r)&&(m=!0,v=["[","]"]),U(r)){var w=r.name?": "+r.name:"";p=" [Function"+w+"]"}return E(r)&&(p=" "+RegExp.prototype.toString.call(r)),F(r)&&(p=" "+Date.prototype.toUTCString.call(r)),I(r)&&(p=" "+g(r)),0!==a.length||m&&0!=r.length?n<0?E(r)?t.stylize(RegExp.prototype.toString.call(r),"regexp"):t.stylize("[Object]","special"):(t.seen.push(r),f=m?b(t,r,n,u,a):a.map((function(e){return d(t,r,n,u,e,m)})),t.seen.pop(),h(f,p,v)):v[0]+p+v[1]}function s(t,e){if(P(e))return t.stylize("undefined","undefined");if(j(e)){var r="'"+JSON.stringify(e).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return t.stylize(r,"string")}return S(e)?t.stylize(""+e,"number"):m(e)?t.stylize(""+e,"boolean"):v(e)?t.stylize("null","null"):void 0}function g(t){return"["+Error.prototype.toString.call(t)+"]"}function b(t,e,r,n,o){for(var i=[],a=0,u=e.length;a-1&&(u=i?u.split("\n").map((function(t){return" "+t})).join("\n").slice(2):"\n"+u.split("\n").map((function(t){return" "+t})).join("\n"))):u=t.stylize("[Circular]","special")),P(a)){if(i&&o.match(/^\d+$/))return u;a=JSON.stringify(""+o),a.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.slice(1,-1),a=t.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=t.stylize(a,"string"))}return a+": "+u}function h(t,e,r){var n=t.reduce((function(t,e){return e.indexOf("\n")>=0&&0,t+e.replace(/\u001b\[\d\d?m/g,"").length+1}),0);return n>60?r[0]+(""===e?"":e+"\n ")+" "+t.join(",\n ")+" "+r[1]:r[0]+e+" "+t.join(", ")+" "+r[1]}function A(t){return Array.isArray(t)}function m(t){return"boolean"===typeof t}function v(t){return null===t}function w(t){return null==t}function S(t){return"number"===typeof t}function j(t){return"string"===typeof t}function O(t){return"symbol"===typeof t}function P(t){return void 0===t}function E(t){return x(t)&&"[object RegExp]"===_(t)}function x(t){return"object"===typeof t&&null!==t}function F(t){return x(t)&&"[object Date]"===_(t)}function I(t){return x(t)&&("[object Error]"===_(t)||t instanceof Error)}function U(t){return"function"===typeof t}function B(t){return null===t||"boolean"===typeof t||"number"===typeof t||"string"===typeof t||"symbol"===typeof t||"undefined"===typeof t}function _(t){return Object.prototype.toString.call(t)}function k(t){return t<10?"0"+t.toString(10):t.toString(10)}e.debuglog=function(t){if(t=t.toUpperCase(),!i[t])if(a.test(t)){var r=process.pid;i[t]=function(){var n=e.format.apply(e,arguments);console.error("%s %d: %s",t,r,n)}}else i[t]=function(){};return i[t]},e.inspect=c,c.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},c.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},e.types=r(59032),e.isArray=A,e.isBoolean=m,e.isNull=v,e.isNullOrUndefined=w,e.isNumber=S,e.isString=j,e.isSymbol=O,e.isUndefined=P,e.isRegExp=E,e.types.isRegExp=E,e.isObject=x,e.isDate=F,e.types.isDate=F,e.isError=I,e.types.isNativeError=I,e.isFunction=U,e.isPrimitive=B,e.isBuffer=r(12848);var R=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function M(){var t=new Date,e=[k(t.getHours()),k(t.getMinutes()),k(t.getSeconds())].join(":");return[t.getDate(),R[t.getMonth()],e].join(" ")}function D(t,e){return Object.prototype.hasOwnProperty.call(t,e)}e.log=function(){console.log("%s - %s",M(),e.format.apply(e,arguments))},e.inherits=r(18248),e._extend=function(t,e){if(!e||!x(e))return t;var r=Object.keys(e),n=r.length;while(n--)t[r[n]]=e[r[n]];return t};var T="undefined"!==typeof Symbol?Symbol("util.promisify.custom"):void 0;function N(t,e){if(!t){var r=new Error("Promise was rejected with a falsy value");r.reason=t,t=r}return e(t)}function W(t){if("function"!==typeof t)throw new TypeError('The "original" argument must be of type Function');function e(){for(var e=[],r=0;r-1?e:"Object"===e&&h(t)}return u?d(t):null}},37236:function(t,e,r){"use strict";var n=["BigInt64Array","BigUint64Array","Float32Array","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Uint8Array","Uint8ClampedArray"],o="undefined"===typeof globalThis?r.g:globalThis;t.exports=function(){for(var t=[],e=0;e-1?o(r):r}},4572:function(t,e,r){"use strict";var n=r(30268),o=r(96604),i=r(52392),a=r(76556),u=o("%Function.prototype.apply%"),c=o("%Function.prototype.call%"),f=o("%Reflect.apply%",!0)||n.call(c,u),p=o("%Object.defineProperty%",!0),y=o("%Math.max%");if(p)try{p({},"a",{value:1})}catch(s){p=null}t.exports=function(t){if("function"!==typeof t)throw new a("a function is required");var e=f(n,c,arguments);return i(e,1+y(0,t.length-(arguments.length-1)),!0)};var l=function(){return f(n,u,arguments)};p?p(t.exports,"apply",{value:l}):t.exports.apply=l},5456:function(t,e,r){"use strict";var n=r(71188)(),o=r(96604),i=n&&o("%Object.defineProperty%",!0);if(i)try{i({},"a",{value:1})}catch(f){i=!1}var a=r(17668),u=r(76556),c=r(80872);t.exports=function(t,e,r){if(!t||"object"!==typeof t&&"function"!==typeof t)throw new u("`obj` must be an object or a function`");if("string"!==typeof e&&"symbol"!==typeof e)throw new u("`property` must be a string or a symbol`");if(arguments.length>3&&"boolean"!==typeof arguments[3]&&null!==arguments[3])throw new u("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&"boolean"!==typeof arguments[4]&&null!==arguments[4])throw new u("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&"boolean"!==typeof arguments[5]&&null!==arguments[5])throw new u("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&"boolean"!==typeof arguments[6])throw new u("`loose`, if provided, must be a boolean");var n=arguments.length>3?arguments[3]:null,o=arguments.length>4?arguments[4]:null,f=arguments.length>5?arguments[5]:null,p=arguments.length>6&&arguments[6],y=!!c&&c(t,e);if(i)i(t,e,{configurable:null===f&&y?y.configurable:!f,enumerable:null===n&&y?y.enumerable:!n,value:r,writable:null===o&&y?y.writable:!o});else{if(!p&&(n||o||f))throw new a("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.");t[e]=r}}},59576:function(t){"use strict";t.exports=EvalError},42772:function(t){"use strict";t.exports=Error},75360:function(t){"use strict";t.exports=RangeError},62380:function(t){"use strict";t.exports=ReferenceError},17668:function(t){"use strict";t.exports=SyntaxError},76556:function(t){"use strict";t.exports=TypeError},10568:function(t){"use strict";t.exports=URIError},7040:function(t,e,r){"use strict";var n=r(18528),o=Object.prototype.toString,i=Object.prototype.hasOwnProperty,a=function(t,e,r){for(var n=0,o=t.length;n=3&&(i=r),"[object Array]"===o.call(t)?a(t,e,i):"string"===typeof t?u(t,e,i):c(t,e,i)};t.exports=f},97840:function(t){"use strict";var e="Function.prototype.bind called on incompatible ",r=Object.prototype.toString,n=Math.max,o="[object Function]",i=function(t,e){for(var r=[],n=0;n1&&"boolean"!==typeof e)throw new f('"allowMissing" argument must be a boolean');if(null===B(/^%?[^%]*%?$/,t))throw new c("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var r=R(t),n=r.length>0?r[0]:"",o=M("%"+n+"%",e),i=o.name,a=o.value,u=!1,p=o.alias;p&&(n=p[0],F(r,x([0,1],p)));for(var y=1,l=!0;y=r.length){var h=s(a,g);l=!!h,a=l&&"get"in h&&!("originalValue"in h.get)?h.get:a[g]}else l=E(a,g),a=a[g];l&&!u&&(w[i]=a)}}return a}},80872:function(t,e,r){"use strict";var n=r(96604),o=n("%Object.getOwnPropertyDescriptor%",!0);if(o)try{o([],"length")}catch(i){o=null}t.exports=o},71188:function(t,e,r){"use strict";var n=r(96604),o=n("%Object.defineProperty%",!0),i=function(){if(o)try{return o({},"a",{value:1}),!0}catch(t){return!1}return!1};i.hasArrayLengthDefineBug=function(){if(!i())return null;try{return 1!==o([],"length",{value:1}).length}catch(t){return!0}},t.exports=i},37636:function(t){"use strict";var e={foo:{}},r=Object;t.exports=function(){return{__proto__:e}.foo===e.foo&&!({__proto__:null}instanceof r)}},24308:function(t,e,r){"use strict";var n="undefined"!==typeof Symbol&&Symbol,o=r(31968);t.exports=function(){return"function"===typeof n&&("function"===typeof Symbol&&("symbol"===typeof n("foo")&&("symbol"===typeof Symbol("bar")&&o())))}},31968:function(t){"use strict";t.exports=function(){if("function"!==typeof Symbol||"function"!==typeof Object.getOwnPropertySymbols)return!1;if("symbol"===typeof Symbol.iterator)return!0;var t={},e=Symbol("test"),r=Object(e);if("string"===typeof e)return!1;if("[object Symbol]"!==Object.prototype.toString.call(e))return!1;if("[object Symbol]"!==Object.prototype.toString.call(r))return!1;var n=42;for(e in t[e]=n,t)return!1;if("function"===typeof Object.keys&&0!==Object.keys(t).length)return!1;if("function"===typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(t).length)return!1;var o=Object.getOwnPropertySymbols(t);if(1!==o.length||o[0]!==e)return!1;if(!Object.prototype.propertyIsEnumerable.call(t,e))return!1;if("function"===typeof Object.getOwnPropertyDescriptor){var i=Object.getOwnPropertyDescriptor(t,e);if(i.value!==n||!0!==i.enumerable)return!1}return!0}},53804:function(t,e,r){"use strict";var n=r(31968);t.exports=function(){return n()&&!!Symbol.toStringTag}},15176:function(t,e,r){"use strict";var n=Function.prototype.call,o=Object.prototype.hasOwnProperty,i=r(30268);t.exports=i.call(n,o)},18248:function(t){"function"===typeof Object.create?t.exports=function(t,e){e&&(t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:t.exports=function(t,e){if(e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}}},22816:function(t,e,r){"use strict";var n=r(53804)(),o=r(22768),i=o("Object.prototype.toString"),a=function(t){return!(n&&t&&"object"===typeof t&&Symbol.toStringTag in t)&&"[object Arguments]"===i(t)},u=function(t){return!!a(t)||null!==t&&"object"===typeof t&&"number"===typeof t.length&&t.length>=0&&"[object Array]"!==i(t)&&"[object Function]"===i(t.callee)},c=function(){return a(arguments)}();a.isLegacyArguments=u,t.exports=c?a:u},18528:function(t){"use strict";var e,r,n=Function.prototype.toString,o="object"===typeof Reflect&&null!==Reflect&&Reflect.apply;if("function"===typeof o&&"function"===typeof Object.defineProperty)try{e=Object.defineProperty({},"length",{get:function(){throw r}}),r={},o((function(){throw 42}),null,e)}catch(m){m!==r&&(o=null)}else o=null;var i=/^\s*class\b/,a=function(t){try{var e=n.call(t);return i.test(e)}catch(r){return!1}},u=function(t){try{return!a(t)&&(n.call(t),!0)}catch(e){return!1}},c=Object.prototype.toString,f="[object Object]",p="[object Function]",y="[object GeneratorFunction]",l="[object HTMLAllCollection]",s="[object HTML document.all class]",g="[object HTMLCollection]",b="function"===typeof Symbol&&!!Symbol.toStringTag,d=!(0 in[,]),h=function(){return!1};if("object"===typeof document){var A=document.all;c.call(A)===c.call(document.all)&&(h=function(t){if((d||!t)&&("undefined"===typeof t||"object"===typeof t))try{var e=c.call(t);return(e===l||e===s||e===g||e===f)&&null==t("")}catch(r){}return!1})}t.exports=o?function(t){if(h(t))return!0;if(!t)return!1;if("function"!==typeof t&&"object"!==typeof t)return!1;try{o(t,null,e)}catch(n){if(n!==r)return!1}return!a(t)&&u(t)}:function(t){if(h(t))return!0;if(!t)return!1;if("function"!==typeof t&&"object"!==typeof t)return!1;if(b)return u(t);if(a(t))return!1;var e=c.call(t);return!(e!==p&&e!==y&&!/^\[object HTML/.test(e))&&u(t)}},77700:function(t,e,r){"use strict";var n,o=Object.prototype.toString,i=Function.prototype.toString,a=/^\s*(?:function)?\*/,u=r(53804)(),c=Object.getPrototypeOf,f=function(){if(!u)return!1;try{return Function("return function*() {}")()}catch(t){}};t.exports=function(t){if("function"!==typeof t)return!1;if(a.test(i.call(t)))return!0;if(!u){var e=o.call(t);return"[object GeneratorFunction]"===e}if(!c)return!1;if("undefined"===typeof n){var r=f();n=!!r&&c(r)}return c(t)===n}},83340:function(t,e,r){"use strict";var n=r(8488);t.exports=function(t){return!!n(t)}},52392:function(t,e,r){"use strict";var n=r(96604),o=r(5456),i=r(71188)(),a=r(80872),u=r(76556),c=n("%Math.floor%");t.exports=function(t,e){if("function"!==typeof t)throw new u("`fn` is not a function");if("number"!==typeof e||e<0||e>4294967295||c(e)!==e)throw new u("`length` must be a positive 32-bit integer");var r=arguments.length>2&&!!arguments[2],n=!0,f=!0;if("length"in t&&a){var p=a(t,"length");p&&!p.configurable&&(n=!1),p&&!p.writable&&(f=!1)}return(n||f||!r)&&(i?o(t,"length",e,!0,!0):o(t,"length",e)),t}},12848:function(t){t.exports=function(t){return t&&"object"===typeof t&&"function"===typeof t.copy&&"function"===typeof t.fill&&"function"===typeof t.readUInt8}},59032:function(t,e,r){"use strict";var n=r(22816),o=r(77700),i=r(8488),a=r(83340);function u(t){return t.call.bind(t)}var c="undefined"!==typeof BigInt,f="undefined"!==typeof Symbol,p=u(Object.prototype.toString),y=u(Number.prototype.valueOf),l=u(String.prototype.valueOf),s=u(Boolean.prototype.valueOf);if(c)var g=u(BigInt.prototype.valueOf);if(f)var b=u(Symbol.prototype.valueOf);function d(t,e){if("object"!==typeof t)return!1;try{return e(t),!0}catch(r){return!1}}function h(t){return"undefined"!==typeof Promise&&t instanceof Promise||null!==t&&"object"===typeof t&&"function"===typeof t.then&&"function"===typeof t.catch}function A(t){return"undefined"!==typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(t):a(t)||z(t)}function m(t){return"Uint8Array"===i(t)}function v(t){return"Uint8ClampedArray"===i(t)}function w(t){return"Uint16Array"===i(t)}function S(t){return"Uint32Array"===i(t)}function j(t){return"Int8Array"===i(t)}function O(t){return"Int16Array"===i(t)}function P(t){return"Int32Array"===i(t)}function E(t){return"Float32Array"===i(t)}function x(t){return"Float64Array"===i(t)}function F(t){return"BigInt64Array"===i(t)}function I(t){return"BigUint64Array"===i(t)}function U(t){return"[object Map]"===p(t)}function B(t){return"undefined"!==typeof Map&&(U.working?U(t):t instanceof Map)}function _(t){return"[object Set]"===p(t)}function k(t){return"undefined"!==typeof Set&&(_.working?_(t):t instanceof Set)}function R(t){return"[object WeakMap]"===p(t)}function M(t){return"undefined"!==typeof WeakMap&&(R.working?R(t):t instanceof WeakMap)}function D(t){return"[object WeakSet]"===p(t)}function T(t){return D(t)}function N(t){return"[object ArrayBuffer]"===p(t)}function W(t){return"undefined"!==typeof ArrayBuffer&&(N.working?N(t):t instanceof ArrayBuffer)}function G(t){return"[object DataView]"===p(t)}function z(t){return"undefined"!==typeof DataView&&(G.working?G(t):t instanceof DataView)}e.isArgumentsObject=n,e.isGeneratorFunction=o,e.isTypedArray=a,e.isPromise=h,e.isArrayBufferView=A,e.isUint8Array=m,e.isUint8ClampedArray=v,e.isUint16Array=w,e.isUint32Array=S,e.isInt8Array=j,e.isInt16Array=O,e.isInt32Array=P,e.isFloat32Array=E,e.isFloat64Array=x,e.isBigInt64Array=F,e.isBigUint64Array=I,U.working="undefined"!==typeof Map&&U(new Map),e.isMap=B,_.working="undefined"!==typeof Set&&_(new Set),e.isSet=k,R.working="undefined"!==typeof WeakMap&&R(new WeakMap),e.isWeakMap=M,D.working="undefined"!==typeof WeakSet&&D(new WeakSet),e.isWeakSet=T,N.working="undefined"!==typeof ArrayBuffer&&N(new ArrayBuffer),e.isArrayBuffer=W,G.working="undefined"!==typeof ArrayBuffer&&"undefined"!==typeof DataView&&G(new DataView(new ArrayBuffer(1),0,1)),e.isDataView=z;var C="undefined"!==typeof SharedArrayBuffer?SharedArrayBuffer:void 0;function V(t){return"[object SharedArrayBuffer]"===p(t)}function $(t){return"undefined"!==typeof C&&("undefined"===typeof V.working&&(V.working=V(new C)),V.working?V(t):t instanceof C)}function J(t){return"[object AsyncFunction]"===p(t)}function H(t){return"[object Map Iterator]"===p(t)}function L(t){return"[object Set Iterator]"===p(t)}function q(t){return"[object Generator]"===p(t)}function Z(t){return"[object WebAssembly.Module]"===p(t)}function K(t){return d(t,y)}function Q(t){return d(t,l)}function X(t){return d(t,s)}function Y(t){return c&&d(t,g)}function tt(t){return f&&d(t,b)}function et(t){return K(t)||Q(t)||X(t)||Y(t)||tt(t)}function rt(t){return"undefined"!==typeof Uint8Array&&(W(t)||$(t))}e.isSharedArrayBuffer=$,e.isAsyncFunction=J,e.isMapIterator=H,e.isSetIterator=L,e.isGeneratorObject=q,e.isWebAssemblyCompiledModule=Z,e.isNumberObject=K,e.isStringObject=Q,e.isBooleanObject=X,e.isBigIntObject=Y,e.isSymbolObject=tt,e.isBoxedPrimitive=et,e.isAnyArrayBuffer=rt,["isProxy","isExternal","isModuleNamespaceObject"].forEach((function(t){Object.defineProperty(e,t,{enumerable:!1,value:function(){throw new Error(t+" is not supported in userland")}})}))},93912:function(t,e,r){var n=Object.getOwnPropertyDescriptors||function(t){for(var e=Object.keys(t),r={},n=0;n=i)return t;switch(t){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(e){return"[Circular]"}default:return t}})),u=n[r];r=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),m(r)?n.showHidden=r:r&&e._extend(n,r),P(n.showHidden)&&(n.showHidden=!1),P(n.depth)&&(n.depth=2),P(n.colors)&&(n.colors=!1),P(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=f),l(n,t,n.depth)}function f(t,e){var r=c.styles[e];return r?"["+c.colors[r][0]+"m"+t+"["+c.colors[r][1]+"m":t}function p(t,e){return t}function y(t){var e={};return t.forEach((function(t,r){e[t]=!0})),e}function l(t,r,n){if(t.customInspect&&r&&U(r.inspect)&&r.inspect!==e.inspect&&(!r.constructor||r.constructor.prototype!==r)){var o=r.inspect(n,t);return j(o)||(o=l(t,o,n)),o}var i=s(t,r);if(i)return i;var a=Object.keys(r),u=y(a);if(t.showHidden&&(a=Object.getOwnPropertyNames(r)),I(r)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return g(r);if(0===a.length){if(U(r)){var c=r.name?": "+r.name:"";return t.stylize("[Function"+c+"]","special")}if(E(r))return t.stylize(RegExp.prototype.toString.call(r),"regexp");if(F(r))return t.stylize(Date.prototype.toString.call(r),"date");if(I(r))return g(r)}var f,p="",m=!1,v=["{","}"];if(A(r)&&(m=!0,v=["[","]"]),U(r)){var w=r.name?": "+r.name:"";p=" [Function"+w+"]"}return E(r)&&(p=" "+RegExp.prototype.toString.call(r)),F(r)&&(p=" "+Date.prototype.toUTCString.call(r)),I(r)&&(p=" "+g(r)),0!==a.length||m&&0!=r.length?n<0?E(r)?t.stylize(RegExp.prototype.toString.call(r),"regexp"):t.stylize("[Object]","special"):(t.seen.push(r),f=m?b(t,r,n,u,a):a.map((function(e){return d(t,r,n,u,e,m)})),t.seen.pop(),h(f,p,v)):v[0]+p+v[1]}function s(t,e){if(P(e))return t.stylize("undefined","undefined");if(j(e)){var r="'"+JSON.stringify(e).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return t.stylize(r,"string")}return S(e)?t.stylize(""+e,"number"):m(e)?t.stylize(""+e,"boolean"):v(e)?t.stylize("null","null"):void 0}function g(t){return"["+Error.prototype.toString.call(t)+"]"}function b(t,e,r,n,o){for(var i=[],a=0,u=e.length;a-1&&(u=i?u.split("\n").map((function(t){return" "+t})).join("\n").slice(2):"\n"+u.split("\n").map((function(t){return" "+t})).join("\n"))):u=t.stylize("[Circular]","special")),P(a)){if(i&&o.match(/^\d+$/))return u;a=JSON.stringify(""+o),a.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.slice(1,-1),a=t.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=t.stylize(a,"string"))}return a+": "+u}function h(t,e,r){var n=t.reduce((function(t,e){return e.indexOf("\n")>=0&&0,t+e.replace(/\u001b\[\d\d?m/g,"").length+1}),0);return n>60?r[0]+(""===e?"":e+"\n ")+" "+t.join(",\n ")+" "+r[1]:r[0]+e+" "+t.join(", ")+" "+r[1]}function A(t){return Array.isArray(t)}function m(t){return"boolean"===typeof t}function v(t){return null===t}function w(t){return null==t}function S(t){return"number"===typeof t}function j(t){return"string"===typeof t}function O(t){return"symbol"===typeof t}function P(t){return void 0===t}function E(t){return x(t)&&"[object RegExp]"===_(t)}function x(t){return"object"===typeof t&&null!==t}function F(t){return x(t)&&"[object Date]"===_(t)}function I(t){return x(t)&&("[object Error]"===_(t)||t instanceof Error)}function U(t){return"function"===typeof t}function B(t){return null===t||"boolean"===typeof t||"number"===typeof t||"string"===typeof t||"symbol"===typeof t||"undefined"===typeof t}function _(t){return Object.prototype.toString.call(t)}function k(t){return t<10?"0"+t.toString(10):t.toString(10)}e.debuglog=function(t){if(t=t.toUpperCase(),!i[t])if(a.test(t)){var r=process.pid;i[t]=function(){var n=e.format.apply(e,arguments);console.error("%s %d: %s",t,r,n)}}else i[t]=function(){};return i[t]},e.inspect=c,c.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},c.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},e.types=r(59032),e.isArray=A,e.isBoolean=m,e.isNull=v,e.isNullOrUndefined=w,e.isNumber=S,e.isString=j,e.isSymbol=O,e.isUndefined=P,e.isRegExp=E,e.types.isRegExp=E,e.isObject=x,e.isDate=F,e.types.isDate=F,e.isError=I,e.types.isNativeError=I,e.isFunction=U,e.isPrimitive=B,e.isBuffer=r(12848);var R=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function M(){var t=new Date,e=[k(t.getHours()),k(t.getMinutes()),k(t.getSeconds())].join(":");return[t.getDate(),R[t.getMonth()],e].join(" ")}function D(t,e){return Object.prototype.hasOwnProperty.call(t,e)}e.log=function(){console.log("%s - %s",M(),e.format.apply(e,arguments))},e.inherits=r(18248),e._extend=function(t,e){if(!e||!x(e))return t;var r=Object.keys(e),n=r.length;while(n--)t[r[n]]=e[r[n]];return t};var T="undefined"!==typeof Symbol?Symbol("util.promisify.custom"):void 0;function N(t,e){if(!t){var r=new Error("Promise was rejected with a falsy value");r.reason=t,t=r}return e(t)}function W(t){if("function"!==typeof t)throw new TypeError('The "original" argument must be of type Function');function e(){for(var e=[],r=0;r-1?e:"Object"===e&&h(t)}return u?d(t):null}},37236:function(t,e,r){"use strict";var n=["BigInt64Array","BigUint64Array","Float32Array","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Uint8Array","Uint8ClampedArray"],o="undefined"===typeof globalThis?r.g:globalThis;t.exports=function(){for(var t=[],e=0;e -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\nvar setFunctionLength = require('set-function-length');\n\nvar $TypeError = require('es-errors/type');\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = null;\n\t}\n}\n\nmodule.exports = function callBind(originalFunction) {\n\tif (typeof originalFunction !== 'function') {\n\t\tthrow new $TypeError('a function is required');\n\t}\n\tvar func = $reflectApply(bind, $call, arguments);\n\treturn setFunctionLength(\n\t\tfunc,\n\t\t1 + $max(0, originalFunction.length - (arguments.length - 1)),\n\t\ttrue\n\t);\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","'use strict';\n\nvar hasPropertyDescriptors = require('has-property-descriptors')();\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $defineProperty = hasPropertyDescriptors && GetIntrinsic('%Object.defineProperty%', true);\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = false;\n\t}\n}\n\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\n\nvar gopd = require('gopd');\n\n/** @type {(obj: Record, property: PropertyKey, value: unknown, nonEnumerable?: boolean | null, nonWritable?: boolean | null, nonConfigurable?: boolean | null, loose?: boolean) => void} */\nmodule.exports = function defineDataProperty(\n\tobj,\n\tproperty,\n\tvalue\n) {\n\tif (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {\n\t\tthrow new $TypeError('`obj` must be an object or a function`');\n\t}\n\tif (typeof property !== 'string' && typeof property !== 'symbol') {\n\t\tthrow new $TypeError('`property` must be a string or a symbol`');\n\t}\n\tif (arguments.length > 3 && typeof arguments[3] !== 'boolean' && arguments[3] !== null) {\n\t\tthrow new $TypeError('`nonEnumerable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 4 && typeof arguments[4] !== 'boolean' && arguments[4] !== null) {\n\t\tthrow new $TypeError('`nonWritable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 5 && typeof arguments[5] !== 'boolean' && arguments[5] !== null) {\n\t\tthrow new $TypeError('`nonConfigurable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 6 && typeof arguments[6] !== 'boolean') {\n\t\tthrow new $TypeError('`loose`, if provided, must be a boolean');\n\t}\n\n\tvar nonEnumerable = arguments.length > 3 ? arguments[3] : null;\n\tvar nonWritable = arguments.length > 4 ? arguments[4] : null;\n\tvar nonConfigurable = arguments.length > 5 ? arguments[5] : null;\n\tvar loose = arguments.length > 6 ? arguments[6] : false;\n\n\t/* @type {false | TypedPropertyDescriptor} */\n\tvar desc = !!gopd && gopd(obj, property);\n\n\tif ($defineProperty) {\n\t\t$defineProperty(obj, property, {\n\t\t\tconfigurable: nonConfigurable === null && desc ? desc.configurable : !nonConfigurable,\n\t\t\tenumerable: nonEnumerable === null && desc ? desc.enumerable : !nonEnumerable,\n\t\t\tvalue: value,\n\t\t\twritable: nonWritable === null && desc ? desc.writable : !nonWritable\n\t\t});\n\t} else if (loose || (!nonEnumerable && !nonWritable && !nonConfigurable)) {\n\t\t// must fall back to [[Set]], and was not explicitly asked to make non-enumerable, non-writable, or non-configurable\n\t\tobj[property] = value; // eslint-disable-line no-param-reassign\n\t} else {\n\t\tthrow new $SyntaxError('This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.');\n\t}\n};\n","'use strict';\n\n/** @type {import('./eval')} */\nmodule.exports = EvalError;\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Error;\n","'use strict';\n\n/** @type {import('./range')} */\nmodule.exports = RangeError;\n","'use strict';\n\n/** @type {import('./ref')} */\nmodule.exports = ReferenceError;\n","'use strict';\n\n/** @type {import('./syntax')} */\nmodule.exports = SyntaxError;\n","'use strict';\n\n/** @type {import('./type')} */\nmodule.exports = TypeError;\n","'use strict';\n\n/** @type {import('./uri')} */\nmodule.exports = URIError;\n","'use strict';\n\nvar isCallable = require('is-callable');\n\nvar toStr = Object.prototype.toString;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar forEachArray = function forEachArray(array, iterator, receiver) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (hasOwnProperty.call(array, i)) {\n if (receiver == null) {\n iterator(array[i], i, array);\n } else {\n iterator.call(receiver, array[i], i, array);\n }\n }\n }\n};\n\nvar forEachString = function forEachString(string, iterator, receiver) {\n for (var i = 0, len = string.length; i < len; i++) {\n // no such thing as a sparse string.\n if (receiver == null) {\n iterator(string.charAt(i), i, string);\n } else {\n iterator.call(receiver, string.charAt(i), i, string);\n }\n }\n};\n\nvar forEachObject = function forEachObject(object, iterator, receiver) {\n for (var k in object) {\n if (hasOwnProperty.call(object, k)) {\n if (receiver == null) {\n iterator(object[k], k, object);\n } else {\n iterator.call(receiver, object[k], k, object);\n }\n }\n }\n};\n\nvar forEach = function forEach(list, iterator, thisArg) {\n if (!isCallable(iterator)) {\n throw new TypeError('iterator must be a function');\n }\n\n var receiver;\n if (arguments.length >= 3) {\n receiver = thisArg;\n }\n\n if (toStr.call(list) === '[object Array]') {\n forEachArray(list, iterator, receiver);\n } else if (typeof list === 'string') {\n forEachString(list, iterator, receiver);\n } else {\n forEachObject(list, iterator, receiver);\n }\n};\n\nmodule.exports = forEach;\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar toStr = Object.prototype.toString;\nvar max = Math.max;\nvar funcType = '[object Function]';\n\nvar concatty = function concatty(a, b) {\n var arr = [];\n\n for (var i = 0; i < a.length; i += 1) {\n arr[i] = a[i];\n }\n for (var j = 0; j < b.length; j += 1) {\n arr[j + a.length] = b[j];\n }\n\n return arr;\n};\n\nvar slicy = function slicy(arrLike, offset) {\n var arr = [];\n for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {\n arr[j] = arrLike[i];\n }\n return arr;\n};\n\nvar joiny = function (arr, joiner) {\n var str = '';\n for (var i = 0; i < arr.length; i += 1) {\n str += arr[i];\n if (i + 1 < arr.length) {\n str += joiner;\n }\n }\n return str;\n};\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.apply(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slicy(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n concatty(args, arguments)\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n }\n return target.apply(\n that,\n concatty(args, arguments)\n );\n\n };\n\n var boundLength = max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs[i] = '$' + i;\n }\n\n bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar undefined;\n\nvar $Error = require('es-errors');\nvar $EvalError = require('es-errors/eval');\nvar $RangeError = require('es-errors/range');\nvar $ReferenceError = require('es-errors/ref');\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\nvar $URIError = require('es-errors/uri');\n\nvar $Function = Function;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\nvar hasProto = require('has-proto')();\n\nvar getProto = Object.getPrototypeOf || (\n\thasProto\n\t\t? function (x) { return x.__proto__; } // eslint-disable-line no-proto\n\t\t: null\n);\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t__proto__: null,\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n\t'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': $Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': $EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': $RangeError,\n\t'%ReferenceError%': $ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': $URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nif (getProto) {\n\ttry {\n\t\tnull.error; // eslint-disable-line no-unused-expressions\n\t} catch (e) {\n\t\t// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n\t\tvar errorProto = getProto(getProto(e));\n\t\tINTRINSICS['%Error.prototype%'] = errorProto;\n\t}\n}\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen && getProto) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t__proto__: null,\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('hasown');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\nvar $exec = bind.call(Function.call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\tif ($defineProperty) {\n\t\ttry {\n\t\t\t$defineProperty({}, 'a', { value: 1 });\n\t\t\treturn true;\n\t\t} catch (e) {\n\t\t\t// IE 8 has a broken defineProperty\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn false;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!hasPropertyDescriptors()) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n","'use strict';\n\nvar test = {\n\tfoo: {}\n};\n\nvar $Object = Object;\n\nmodule.exports = function hasProto() {\n\treturn { __proto__: test }.foo === test.foo && !({ __proto__: null } instanceof $Object);\n};\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n","'use strict';\n\nvar call = Function.prototype.call;\nvar $hasOwn = Object.prototype.hasOwnProperty;\nvar bind = require('function-bind');\n\n/** @type {(o: {}, p: PropertyKey) => p is keyof o} */\nmodule.exports = bind.call(call, $hasOwn);\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","'use strict';\n\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\n\nvar isStandardArguments = function isArguments(value) {\n\tif (hasToStringTag && value && typeof value === 'object' && Symbol.toStringTag in value) {\n\t\treturn false;\n\t}\n\treturn $toString(value) === '[object Arguments]';\n};\n\nvar isLegacyArguments = function isArguments(value) {\n\tif (isStandardArguments(value)) {\n\t\treturn true;\n\t}\n\treturn value !== null &&\n\t\ttypeof value === 'object' &&\n\t\ttypeof value.length === 'number' &&\n\t\tvalue.length >= 0 &&\n\t\t$toString(value) !== '[object Array]' &&\n\t\t$toString(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = (function () {\n\treturn isStandardArguments(arguments);\n}());\n\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\n","'use strict';\n\nvar fnToStr = Function.prototype.toString;\nvar reflectApply = typeof Reflect === 'object' && Reflect !== null && Reflect.apply;\nvar badArrayLike;\nvar isCallableMarker;\nif (typeof reflectApply === 'function' && typeof Object.defineProperty === 'function') {\n\ttry {\n\t\tbadArrayLike = Object.defineProperty({}, 'length', {\n\t\t\tget: function () {\n\t\t\t\tthrow isCallableMarker;\n\t\t\t}\n\t\t});\n\t\tisCallableMarker = {};\n\t\t// eslint-disable-next-line no-throw-literal\n\t\treflectApply(function () { throw 42; }, null, badArrayLike);\n\t} catch (_) {\n\t\tif (_ !== isCallableMarker) {\n\t\t\treflectApply = null;\n\t\t}\n\t}\n} else {\n\treflectApply = null;\n}\n\nvar constructorRegex = /^\\s*class\\b/;\nvar isES6ClassFn = function isES6ClassFunction(value) {\n\ttry {\n\t\tvar fnStr = fnToStr.call(value);\n\t\treturn constructorRegex.test(fnStr);\n\t} catch (e) {\n\t\treturn false; // not a function\n\t}\n};\n\nvar tryFunctionObject = function tryFunctionToStr(value) {\n\ttry {\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tfnToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar objectClass = '[object Object]';\nvar fnClass = '[object Function]';\nvar genClass = '[object GeneratorFunction]';\nvar ddaClass = '[object HTMLAllCollection]'; // IE 11\nvar ddaClass2 = '[object HTML document.all class]';\nvar ddaClass3 = '[object HTMLCollection]'; // IE 9-10\nvar hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; // better: use `has-tostringtag`\n\nvar isIE68 = !(0 in [,]); // eslint-disable-line no-sparse-arrays, comma-spacing\n\nvar isDDA = function isDocumentDotAll() { return false; };\nif (typeof document === 'object') {\n\t// Firefox 3 canonicalizes DDA to undefined when it's not accessed directly\n\tvar all = document.all;\n\tif (toStr.call(all) === toStr.call(document.all)) {\n\t\tisDDA = function isDocumentDotAll(value) {\n\t\t\t/* globals document: false */\n\t\t\t// in IE 6-8, typeof document.all is \"object\" and it's truthy\n\t\t\tif ((isIE68 || !value) && (typeof value === 'undefined' || typeof value === 'object')) {\n\t\t\t\ttry {\n\t\t\t\t\tvar str = toStr.call(value);\n\t\t\t\t\treturn (\n\t\t\t\t\t\tstr === ddaClass\n\t\t\t\t\t\t|| str === ddaClass2\n\t\t\t\t\t\t|| str === ddaClass3 // opera 12.16\n\t\t\t\t\t\t|| str === objectClass // IE 6-8\n\t\t\t\t\t) && value('') == null; // eslint-disable-line eqeqeq\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\t}\n}\n\nmodule.exports = reflectApply\n\t? function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\ttry {\n\t\t\treflectApply(value, null, badArrayLike);\n\t\t} catch (e) {\n\t\t\tif (e !== isCallableMarker) { return false; }\n\t\t}\n\t\treturn !isES6ClassFn(value) && tryFunctionObject(value);\n\t}\n\t: function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\tif (hasToStringTag) { return tryFunctionObject(value); }\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tvar strClass = toStr.call(value);\n\t\tif (strClass !== fnClass && strClass !== genClass && !(/^\\[object HTML/).test(strClass)) { return false; }\n\t\treturn tryFunctionObject(value);\n\t};\n","'use strict';\n\nvar toStr = Object.prototype.toString;\nvar fnToStr = Function.prototype.toString;\nvar isFnRegex = /^\\s*(?:function)?\\*/;\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar getProto = Object.getPrototypeOf;\nvar getGeneratorFunc = function () { // eslint-disable-line consistent-return\n\tif (!hasToStringTag) {\n\t\treturn false;\n\t}\n\ttry {\n\t\treturn Function('return function*() {}')();\n\t} catch (e) {\n\t}\n};\nvar GeneratorFunction;\n\nmodule.exports = function isGeneratorFunction(fn) {\n\tif (typeof fn !== 'function') {\n\t\treturn false;\n\t}\n\tif (isFnRegex.test(fnToStr.call(fn))) {\n\t\treturn true;\n\t}\n\tif (!hasToStringTag) {\n\t\tvar str = toStr.call(fn);\n\t\treturn str === '[object GeneratorFunction]';\n\t}\n\tif (!getProto) {\n\t\treturn false;\n\t}\n\tif (typeof GeneratorFunction === 'undefined') {\n\t\tvar generatorFunc = getGeneratorFunc();\n\t\tGeneratorFunction = generatorFunc ? getProto(generatorFunc) : false;\n\t}\n\treturn getProto(fn) === GeneratorFunction;\n};\n","'use strict';\n\nvar whichTypedArray = require('which-typed-array');\n\n/** @type {import('.')} */\nmodule.exports = function isTypedArray(value) {\n\treturn !!whichTypedArray(value);\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar define = require('define-data-property');\nvar hasDescriptors = require('has-property-descriptors')();\nvar gOPD = require('gopd');\n\nvar $TypeError = require('es-errors/type');\nvar $floor = GetIntrinsic('%Math.floor%');\n\n/** @typedef {(...args: unknown[]) => unknown} Func */\n\n/** @type {(fn: T, length: number, loose?: boolean) => T} */\nmodule.exports = function setFunctionLength(fn, length) {\n\tif (typeof fn !== 'function') {\n\t\tthrow new $TypeError('`fn` is not a function');\n\t}\n\tif (typeof length !== 'number' || length < 0 || length > 0xFFFFFFFF || $floor(length) !== length) {\n\t\tthrow new $TypeError('`length` must be a positive 32-bit integer');\n\t}\n\n\tvar loose = arguments.length > 2 && !!arguments[2];\n\n\tvar functionLengthIsConfigurable = true;\n\tvar functionLengthIsWritable = true;\n\tif ('length' in fn && gOPD) {\n\t\tvar desc = gOPD(fn, 'length');\n\t\tif (desc && !desc.configurable) {\n\t\t\tfunctionLengthIsConfigurable = false;\n\t\t}\n\t\tif (desc && !desc.writable) {\n\t\t\tfunctionLengthIsWritable = false;\n\t\t}\n\t}\n\n\tif (functionLengthIsConfigurable || functionLengthIsWritable || !loose) {\n\t\tif (hasDescriptors) {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'length', length, true, true);\n\t\t} else {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'length', length);\n\t\t}\n\t}\n\treturn fn;\n};\n","module.exports = function isBuffer(arg) {\n return arg && typeof arg === 'object'\n && typeof arg.copy === 'function'\n && typeof arg.fill === 'function'\n && typeof arg.readUInt8 === 'function';\n}","// Currently in sync with Node.js lib/internal/util/types.js\n// https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9\n\n'use strict';\n\nvar isArgumentsObject = require('is-arguments');\nvar isGeneratorFunction = require('is-generator-function');\nvar whichTypedArray = require('which-typed-array');\nvar isTypedArray = require('is-typed-array');\n\nfunction uncurryThis(f) {\n return f.call.bind(f);\n}\n\nvar BigIntSupported = typeof BigInt !== 'undefined';\nvar SymbolSupported = typeof Symbol !== 'undefined';\n\nvar ObjectToString = uncurryThis(Object.prototype.toString);\n\nvar numberValue = uncurryThis(Number.prototype.valueOf);\nvar stringValue = uncurryThis(String.prototype.valueOf);\nvar booleanValue = uncurryThis(Boolean.prototype.valueOf);\n\nif (BigIntSupported) {\n var bigIntValue = uncurryThis(BigInt.prototype.valueOf);\n}\n\nif (SymbolSupported) {\n var symbolValue = uncurryThis(Symbol.prototype.valueOf);\n}\n\nfunction checkBoxedPrimitive(value, prototypeValueOf) {\n if (typeof value !== 'object') {\n return false;\n }\n try {\n prototypeValueOf(value);\n return true;\n } catch(e) {\n return false;\n }\n}\n\nexports.isArgumentsObject = isArgumentsObject;\nexports.isGeneratorFunction = isGeneratorFunction;\nexports.isTypedArray = isTypedArray;\n\n// Taken from here and modified for better browser support\n// https://github.com/sindresorhus/p-is-promise/blob/cda35a513bda03f977ad5cde3a079d237e82d7ef/index.js\nfunction isPromise(input) {\n\treturn (\n\t\t(\n\t\t\ttypeof Promise !== 'undefined' &&\n\t\t\tinput instanceof Promise\n\t\t) ||\n\t\t(\n\t\t\tinput !== null &&\n\t\t\ttypeof input === 'object' &&\n\t\t\ttypeof input.then === 'function' &&\n\t\t\ttypeof input.catch === 'function'\n\t\t)\n\t);\n}\nexports.isPromise = isPromise;\n\nfunction isArrayBufferView(value) {\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n return ArrayBuffer.isView(value);\n }\n\n return (\n isTypedArray(value) ||\n isDataView(value)\n );\n}\nexports.isArrayBufferView = isArrayBufferView;\n\n\nfunction isUint8Array(value) {\n return whichTypedArray(value) === 'Uint8Array';\n}\nexports.isUint8Array = isUint8Array;\n\nfunction isUint8ClampedArray(value) {\n return whichTypedArray(value) === 'Uint8ClampedArray';\n}\nexports.isUint8ClampedArray = isUint8ClampedArray;\n\nfunction isUint16Array(value) {\n return whichTypedArray(value) === 'Uint16Array';\n}\nexports.isUint16Array = isUint16Array;\n\nfunction isUint32Array(value) {\n return whichTypedArray(value) === 'Uint32Array';\n}\nexports.isUint32Array = isUint32Array;\n\nfunction isInt8Array(value) {\n return whichTypedArray(value) === 'Int8Array';\n}\nexports.isInt8Array = isInt8Array;\n\nfunction isInt16Array(value) {\n return whichTypedArray(value) === 'Int16Array';\n}\nexports.isInt16Array = isInt16Array;\n\nfunction isInt32Array(value) {\n return whichTypedArray(value) === 'Int32Array';\n}\nexports.isInt32Array = isInt32Array;\n\nfunction isFloat32Array(value) {\n return whichTypedArray(value) === 'Float32Array';\n}\nexports.isFloat32Array = isFloat32Array;\n\nfunction isFloat64Array(value) {\n return whichTypedArray(value) === 'Float64Array';\n}\nexports.isFloat64Array = isFloat64Array;\n\nfunction isBigInt64Array(value) {\n return whichTypedArray(value) === 'BigInt64Array';\n}\nexports.isBigInt64Array = isBigInt64Array;\n\nfunction isBigUint64Array(value) {\n return whichTypedArray(value) === 'BigUint64Array';\n}\nexports.isBigUint64Array = isBigUint64Array;\n\nfunction isMapToString(value) {\n return ObjectToString(value) === '[object Map]';\n}\nisMapToString.working = (\n typeof Map !== 'undefined' &&\n isMapToString(new Map())\n);\n\nfunction isMap(value) {\n if (typeof Map === 'undefined') {\n return false;\n }\n\n return isMapToString.working\n ? isMapToString(value)\n : value instanceof Map;\n}\nexports.isMap = isMap;\n\nfunction isSetToString(value) {\n return ObjectToString(value) === '[object Set]';\n}\nisSetToString.working = (\n typeof Set !== 'undefined' &&\n isSetToString(new Set())\n);\nfunction isSet(value) {\n if (typeof Set === 'undefined') {\n return false;\n }\n\n return isSetToString.working\n ? isSetToString(value)\n : value instanceof Set;\n}\nexports.isSet = isSet;\n\nfunction isWeakMapToString(value) {\n return ObjectToString(value) === '[object WeakMap]';\n}\nisWeakMapToString.working = (\n typeof WeakMap !== 'undefined' &&\n isWeakMapToString(new WeakMap())\n);\nfunction isWeakMap(value) {\n if (typeof WeakMap === 'undefined') {\n return false;\n }\n\n return isWeakMapToString.working\n ? isWeakMapToString(value)\n : value instanceof WeakMap;\n}\nexports.isWeakMap = isWeakMap;\n\nfunction isWeakSetToString(value) {\n return ObjectToString(value) === '[object WeakSet]';\n}\nisWeakSetToString.working = (\n typeof WeakSet !== 'undefined' &&\n isWeakSetToString(new WeakSet())\n);\nfunction isWeakSet(value) {\n return isWeakSetToString(value);\n}\nexports.isWeakSet = isWeakSet;\n\nfunction isArrayBufferToString(value) {\n return ObjectToString(value) === '[object ArrayBuffer]';\n}\nisArrayBufferToString.working = (\n typeof ArrayBuffer !== 'undefined' &&\n isArrayBufferToString(new ArrayBuffer())\n);\nfunction isArrayBuffer(value) {\n if (typeof ArrayBuffer === 'undefined') {\n return false;\n }\n\n return isArrayBufferToString.working\n ? isArrayBufferToString(value)\n : value instanceof ArrayBuffer;\n}\nexports.isArrayBuffer = isArrayBuffer;\n\nfunction isDataViewToString(value) {\n return ObjectToString(value) === '[object DataView]';\n}\nisDataViewToString.working = (\n typeof ArrayBuffer !== 'undefined' &&\n typeof DataView !== 'undefined' &&\n isDataViewToString(new DataView(new ArrayBuffer(1), 0, 1))\n);\nfunction isDataView(value) {\n if (typeof DataView === 'undefined') {\n return false;\n }\n\n return isDataViewToString.working\n ? isDataViewToString(value)\n : value instanceof DataView;\n}\nexports.isDataView = isDataView;\n\n// Store a copy of SharedArrayBuffer in case it's deleted elsewhere\nvar SharedArrayBufferCopy = typeof SharedArrayBuffer !== 'undefined' ? SharedArrayBuffer : undefined;\nfunction isSharedArrayBufferToString(value) {\n return ObjectToString(value) === '[object SharedArrayBuffer]';\n}\nfunction isSharedArrayBuffer(value) {\n if (typeof SharedArrayBufferCopy === 'undefined') {\n return false;\n }\n\n if (typeof isSharedArrayBufferToString.working === 'undefined') {\n isSharedArrayBufferToString.working = isSharedArrayBufferToString(new SharedArrayBufferCopy());\n }\n\n return isSharedArrayBufferToString.working\n ? isSharedArrayBufferToString(value)\n : value instanceof SharedArrayBufferCopy;\n}\nexports.isSharedArrayBuffer = isSharedArrayBuffer;\n\nfunction isAsyncFunction(value) {\n return ObjectToString(value) === '[object AsyncFunction]';\n}\nexports.isAsyncFunction = isAsyncFunction;\n\nfunction isMapIterator(value) {\n return ObjectToString(value) === '[object Map Iterator]';\n}\nexports.isMapIterator = isMapIterator;\n\nfunction isSetIterator(value) {\n return ObjectToString(value) === '[object Set Iterator]';\n}\nexports.isSetIterator = isSetIterator;\n\nfunction isGeneratorObject(value) {\n return ObjectToString(value) === '[object Generator]';\n}\nexports.isGeneratorObject = isGeneratorObject;\n\nfunction isWebAssemblyCompiledModule(value) {\n return ObjectToString(value) === '[object WebAssembly.Module]';\n}\nexports.isWebAssemblyCompiledModule = isWebAssemblyCompiledModule;\n\nfunction isNumberObject(value) {\n return checkBoxedPrimitive(value, numberValue);\n}\nexports.isNumberObject = isNumberObject;\n\nfunction isStringObject(value) {\n return checkBoxedPrimitive(value, stringValue);\n}\nexports.isStringObject = isStringObject;\n\nfunction isBooleanObject(value) {\n return checkBoxedPrimitive(value, booleanValue);\n}\nexports.isBooleanObject = isBooleanObject;\n\nfunction isBigIntObject(value) {\n return BigIntSupported && checkBoxedPrimitive(value, bigIntValue);\n}\nexports.isBigIntObject = isBigIntObject;\n\nfunction isSymbolObject(value) {\n return SymbolSupported && checkBoxedPrimitive(value, symbolValue);\n}\nexports.isSymbolObject = isSymbolObject;\n\nfunction isBoxedPrimitive(value) {\n return (\n isNumberObject(value) ||\n isStringObject(value) ||\n isBooleanObject(value) ||\n isBigIntObject(value) ||\n isSymbolObject(value)\n );\n}\nexports.isBoxedPrimitive = isBoxedPrimitive;\n\nfunction isAnyArrayBuffer(value) {\n return typeof Uint8Array !== 'undefined' && (\n isArrayBuffer(value) ||\n isSharedArrayBuffer(value)\n );\n}\nexports.isAnyArrayBuffer = isAnyArrayBuffer;\n\n['isProxy', 'isExternal', 'isModuleNamespaceObject'].forEach(function(method) {\n Object.defineProperty(exports, method, {\n enumerable: false,\n value: function() {\n throw new Error(method + ' is not supported in userland');\n }\n });\n});\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n if (typeof process !== 'undefined' && process.noDeprecation === true) {\n return fn;\n }\n\n // Allow for deprecating things in the process of starting up.\n if (typeof process === 'undefined') {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnvRegex = /^$/;\n\nif (process.env.NODE_DEBUG) {\n var debugEnv = process.env.NODE_DEBUG;\n debugEnv = debugEnv.replace(/[|\\\\{}()[\\]^$+?.]/g, '\\\\$&')\n .replace(/\\*/g, '.*')\n .replace(/,/g, '$|^')\n .toUpperCase();\n debugEnvRegex = new RegExp('^' + debugEnv + '$', 'i');\n}\nexports.debuglog = function(set) {\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (debugEnvRegex.test(set)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').slice(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.slice(1, -1);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nexports.types = require('./support/types');\n\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\nexports.types.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\nexports.types.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\nexports.types.isNativeError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n if (typeof original !== 'function')\n throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return Object.defineProperties(\n fn,\n getOwnPropertyDescriptors(original)\n );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n }\n\n // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n var self = this;\n var cb = function() {\n return maybeCb.apply(self, arguments);\n };\n // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n original.apply(this, args)\n .then(function(ret) { process.nextTick(cb.bind(null, null, ret)) },\n function(rej) { process.nextTick(callbackifyOnRejected.bind(null, rej, cb)) });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified,\n getOwnPropertyDescriptors(original));\n return callbackified;\n}\nexports.callbackify = callbackify;\n","'use strict';\n\nvar forEach = require('for-each');\nvar availableTypedArrays = require('available-typed-arrays');\nvar callBind = require('call-bind');\nvar callBound = require('call-bind/callBound');\nvar gOPD = require('gopd');\n\nvar $toString = callBound('Object.prototype.toString');\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\nvar typedArrays = availableTypedArrays();\n\nvar $slice = callBound('String.prototype.slice');\nvar getPrototypeOf = Object.getPrototypeOf; // require('getprototypeof');\n\nvar $indexOf = callBound('Array.prototype.indexOf', true) || /** @type {(array: readonly unknown[], value: unknown) => keyof array} */ function indexOf(array, value) {\n\tfor (var i = 0; i < array.length; i += 1) {\n\t\tif (array[i] === value) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n};\n\n/** @typedef {Int8Array | Uint8Array | Uint8ClampedArray | Int16Array | Uint16Array | Int32Array | Uint32Array | Float32Array | Float64Array | BigInt64Array | BigUint64Array} TypedArray */\n/** @typedef {'Int8Array' | 'Uint8Array' | 'Uint8ClampedArray' | 'Int16Array' | 'Uint16Array' | 'Int32Array' | 'Uint32Array' | 'Float32Array' | 'Float64Array' | 'BigInt64Array' | 'BigUint64Array'} TypedArrayName */\n/** @type {{ [k in `\\$${TypedArrayName}`]?: (receiver: TypedArray) => string | typeof Uint8Array.prototype.slice.call | typeof Uint8Array.prototype.set.call } & { __proto__: null }} */\nvar cache = { __proto__: null };\nif (hasToStringTag && gOPD && getPrototypeOf) {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tif (Symbol.toStringTag in arr) {\n\t\t\tvar proto = getPrototypeOf(arr);\n\t\t\t// @ts-expect-error TS won't narrow inside a closure\n\t\t\tvar descriptor = gOPD(proto, Symbol.toStringTag);\n\t\t\tif (!descriptor) {\n\t\t\t\tvar superProto = getPrototypeOf(proto);\n\t\t\t\t// @ts-expect-error TS won't narrow inside a closure\n\t\t\t\tdescriptor = gOPD(superProto, Symbol.toStringTag);\n\t\t\t}\n\t\t\t// @ts-expect-error TODO: fix\n\t\t\tcache['$' + typedArray] = callBind(descriptor.get);\n\t\t}\n\t});\n} else {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tvar fn = arr.slice || arr.set;\n\t\tif (fn) {\n\t\t\t// @ts-expect-error TODO: fix\n\t\t\tcache['$' + typedArray] = callBind(fn);\n\t\t}\n\t});\n}\n\n/** @type {import('.')} */\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n\t/** @type {ReturnType} */ var found = false;\n\tforEach(\n\t\t// eslint-disable-next-line no-extra-parens\n\t\t/** @type {Record<`\\$${TypedArrayName}`, typeof cache>} */ /** @type {any} */ (cache),\n\t\t/** @type {(getter: typeof cache, name: `\\$${TypedArrayName}`) => void} */ function (getter, typedArray) {\n\t\t\tif (!found) {\n\t\t\t\ttry {\n\t\t\t\t// @ts-expect-error TODO: fix\n\t\t\t\t\tif ('$' + getter(value) === typedArray) {\n\t\t\t\t\t\tfound = $slice(typedArray, 1);\n\t\t\t\t\t}\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t}\n\t);\n\treturn found;\n};\n\n/** @type {import('.')} */\nvar trySlices = function tryAllSlices(value) {\n\t/** @type {ReturnType} */ var found = false;\n\tforEach(\n\t\t// eslint-disable-next-line no-extra-parens\n\t\t/** @type {any} */ (cache),\n\t\t/** @type {(getter: typeof cache, name: `\\$${TypedArrayName}`) => void} */ function (getter, name) {\n\t\t\tif (!found) {\n\t\t\t\ttry {\n\t\t\t\t// @ts-expect-error TODO: fix\n\t\t\t\t\tgetter(value);\n\t\t\t\t\tfound = $slice(name, 1);\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t}\n\t);\n\treturn found;\n};\n\n/** @type {import('.')} */\nmodule.exports = function whichTypedArray(value) {\n\tif (!value || typeof value !== 'object') { return false; }\n\tif (!hasToStringTag) {\n\t\tvar tag = $slice($toString(value), 8, -1);\n\t\tif ($indexOf(typedArrays, tag) > -1) {\n\t\t\treturn tag;\n\t\t}\n\t\tif (tag !== 'Object') {\n\t\t\treturn false;\n\t\t}\n\t\t// node < 0.6 hits here on real Typed Arrays\n\t\treturn trySlices(value);\n\t}\n\tif (!gOPD) { return null; } // unknown engine\n\treturn tryTypedArrays(value);\n};\n","'use strict';\n\nvar /** @type {ReturnType} */ possibleNames = [\n\t'BigInt64Array',\n\t'BigUint64Array',\n\t'Float32Array',\n\t'Float64Array',\n\t'Int16Array',\n\t'Int32Array',\n\t'Int8Array',\n\t'Uint16Array',\n\t'Uint32Array',\n\t'Uint8Array',\n\t'Uint8ClampedArray'\n];\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\n\n/** @type {import('.')} */\nmodule.exports = function availableTypedArrays() {\n\tvar /** @type {ReturnType} */ out = [];\n\tfor (var i = 0; i < possibleNames.length; i++) {\n\t\tif (typeof g[possibleNames[i]] === 'function') {\n\t\t\t// @ts-expect-error\n\t\t\tout[out.length] = possibleNames[i];\n\t\t}\n\t}\n\treturn out;\n};\n"],"names":["GetIntrinsic","callBind","$indexOf","module","exports","name","allowMissing","intrinsic","bind","setFunctionLength","$TypeError","$apply","$call","$reflectApply","call","$defineProperty","$max","value","e","originalFunction","func","arguments","length","applyBind","apply","hasPropertyDescriptors","$SyntaxError","gopd","obj","property","nonEnumerable","nonWritable","nonConfigurable","loose","desc","configurable","enumerable","writable","EvalError","Error","RangeError","ReferenceError","SyntaxError","TypeError","URIError","isCallable","toStr","Object","prototype","toString","hasOwnProperty","forEachArray","array","iterator","receiver","i","len","forEachString","string","charAt","forEachObject","object","k","forEach","list","thisArg","ERROR_MESSAGE","max","Math","funcType","concatty","a","b","arr","j","slicy","arrLike","offset","joiny","joiner","str","that","target","this","bound","args","binder","result","boundLength","boundArgs","Function","Empty","implementation","undefined","$Error","$EvalError","$RangeError","$ReferenceError","$URIError","$Function","getEvalledConstructor","expressionSyntax","$gOPD","getOwnPropertyDescriptor","throwTypeError","ThrowTypeError","calleeThrows","get","gOPDthrows","hasSymbols","hasProto","getProto","getPrototypeOf","x","__proto__","needsEval","TypedArray","Uint8Array","INTRINSICS","AggregateError","Array","ArrayBuffer","Symbol","Atomics","BigInt","BigInt64Array","BigUint64Array","Boolean","DataView","Date","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","eval","Float32Array","Float64Array","FinalizationRegistry","Int8Array","Int16Array","Int32Array","isFinite","isNaN","JSON","Map","Number","parseFloat","parseInt","Promise","Proxy","Reflect","RegExp","Set","SharedArrayBuffer","String","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","WeakRef","WeakSet","error","errorProto","doEval","fn","gen","LEGACY_ALIASES","hasOwn","$concat","concat","$spliceApply","splice","$replace","replace","$strSlice","slice","$exec","exec","rePropName","reEscapeChar","stringToPath","first","last","match","number","quote","subString","getBaseIntrinsic","alias","intrinsicName","parts","intrinsicBaseName","intrinsicRealName","skipFurtherCaching","isOwn","part","hasArrayLengthDefineBug","test","foo","$Object","origSymbol","hasSymbolSham","getOwnPropertySymbols","sym","symObj","symVal","keys","getOwnPropertyNames","syms","propertyIsEnumerable","descriptor","toStringTag","$hasOwn","create","ctor","superCtor","super_","constructor","TempCtor","hasToStringTag","callBound","$toString","isStandardArguments","isLegacyArguments","callee","supportsStandardArguments","badArrayLike","isCallableMarker","fnToStr","reflectApply","defineProperty","_","constructorRegex","isES6ClassFn","fnStr","tryFunctionObject","objectClass","fnClass","genClass","ddaClass","ddaClass2","ddaClass3","isIE68","isDDA","document","all","strClass","GeneratorFunction","isFnRegex","getGeneratorFunc","generatorFunc","whichTypedArray","define","hasDescriptors","gOPD","$floor","functionLengthIsConfigurable","functionLengthIsWritable","arg","copy","fill","readUInt8","isArgumentsObject","isGeneratorFunction","isTypedArray","uncurryThis","f","BigIntSupported","SymbolSupported","ObjectToString","numberValue","valueOf","stringValue","booleanValue","bigIntValue","symbolValue","checkBoxedPrimitive","prototypeValueOf","isPromise","input","then","catch","isArrayBufferView","isView","isDataView","isUint8Array","isUint8ClampedArray","isUint16Array","isUint32Array","isInt8Array","isInt16Array","isInt32Array","isFloat32Array","isFloat64Array","isBigInt64Array","isBigUint64Array","isMapToString","isMap","working","isSetToString","isSet","isWeakMapToString","isWeakMap","isWeakSetToString","isWeakSet","isArrayBufferToString","isArrayBuffer","isDataViewToString","SharedArrayBufferCopy","isSharedArrayBufferToString","isSharedArrayBuffer","isAsyncFunction","isMapIterator","isSetIterator","isGeneratorObject","isWebAssemblyCompiledModule","isNumberObject","isStringObject","isBooleanObject","isBigIntObject","isSymbolObject","isBoxedPrimitive","isAnyArrayBuffer","method","getOwnPropertyDescriptors","descriptors","formatRegExp","format","isString","objects","push","inspect","join","stringify","isNull","isObject","deprecate","msg","process","noDeprecation","warned","deprecated","throwDeprecation","traceDeprecation","console","trace","debugs","debugEnvRegex","NODE_DEBUG","debugEnv","toUpperCase","opts","ctx","seen","stylize","stylizeNoColor","depth","colors","isBoolean","showHidden","_extend","isUndefined","customInspect","stylizeWithColor","formatValue","styleType","style","styles","arrayToHash","hash","val","idx","recurseTimes","isFunction","ret","primitive","formatPrimitive","visibleKeys","isError","indexOf","formatError","isRegExp","isDate","output","base","braces","isArray","n","toUTCString","formatArray","map","key","formatProperty","pop","reduceToSingleString","simple","isNumber","l","set","split","line","reduce","prev","cur","numLinesEst","ar","isNullOrUndefined","isSymbol","re","objectToString","d","isPrimitive","o","pad","debuglog","pid","types","isNativeError","isBuffer","months","timestamp","time","getHours","getMinutes","getSeconds","getDate","getMonth","prop","log","inherits","origin","add","kCustomPromisifiedSymbol","callbackifyOnRejected","reason","cb","newReason","callbackify","original","callbackified","maybeCb","self","nextTick","rej","setPrototypeOf","defineProperties","promisify","promiseResolve","promiseReject","promise","resolve","reject","err","custom","availableTypedArrays","g","globalThis","typedArrays","$slice","cache","typedArray","proto","superProto","tryTypedArrays","found","getter","trySlices","tag","possibleNames","out"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"js/3912.900420c2.js","mappings":"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","sources":["webpack://@radiantearth/stac-browser/./node_modules/call-bind/callBound.js","webpack://@radiantearth/stac-browser/./node_modules/call-bind/index.js","webpack://@radiantearth/stac-browser/./node_modules/define-data-property/index.js","webpack://@radiantearth/stac-browser/./node_modules/es-errors/eval.js","webpack://@radiantearth/stac-browser/./node_modules/es-errors/index.js","webpack://@radiantearth/stac-browser/./node_modules/es-errors/range.js","webpack://@radiantearth/stac-browser/./node_modules/es-errors/ref.js","webpack://@radiantearth/stac-browser/./node_modules/es-errors/syntax.js","webpack://@radiantearth/stac-browser/./node_modules/es-errors/type.js","webpack://@radiantearth/stac-browser/./node_modules/es-errors/uri.js","webpack://@radiantearth/stac-browser/./node_modules/for-each/index.js","webpack://@radiantearth/stac-browser/./node_modules/function-bind/implementation.js","webpack://@radiantearth/stac-browser/./node_modules/function-bind/index.js","webpack://@radiantearth/stac-browser/./node_modules/get-intrinsic/index.js","webpack://@radiantearth/stac-browser/./node_modules/gopd/index.js","webpack://@radiantearth/stac-browser/./node_modules/has-property-descriptors/index.js","webpack://@radiantearth/stac-browser/./node_modules/has-proto/index.js","webpack://@radiantearth/stac-browser/./node_modules/has-symbols/index.js","webpack://@radiantearth/stac-browser/./node_modules/has-symbols/shams.js","webpack://@radiantearth/stac-browser/./node_modules/has-tostringtag/shams.js","webpack://@radiantearth/stac-browser/./node_modules/hasown/index.js","webpack://@radiantearth/stac-browser/./node_modules/inherits/inherits_browser.js","webpack://@radiantearth/stac-browser/./node_modules/is-arguments/index.js","webpack://@radiantearth/stac-browser/./node_modules/is-callable/index.js","webpack://@radiantearth/stac-browser/./node_modules/is-generator-function/index.js","webpack://@radiantearth/stac-browser/./node_modules/is-typed-array/index.js","webpack://@radiantearth/stac-browser/./node_modules/set-function-length/index.js","webpack://@radiantearth/stac-browser/./node_modules/util/support/isBufferBrowser.js","webpack://@radiantearth/stac-browser/./node_modules/util/support/types.js","webpack://@radiantearth/stac-browser/./node_modules/util/util.js","webpack://@radiantearth/stac-browser/./node_modules/which-typed-array/index.js","webpack://@radiantearth/stac-browser/./node_modules/available-typed-arrays/index.js"],"sourcesContent":["'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\nvar setFunctionLength = require('set-function-length');\n\nvar $TypeError = require('es-errors/type');\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = null;\n\t}\n}\n\nmodule.exports = function callBind(originalFunction) {\n\tif (typeof originalFunction !== 'function') {\n\t\tthrow new $TypeError('a function is required');\n\t}\n\tvar func = $reflectApply(bind, $call, arguments);\n\treturn setFunctionLength(\n\t\tfunc,\n\t\t1 + $max(0, originalFunction.length - (arguments.length - 1)),\n\t\ttrue\n\t);\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","'use strict';\n\nvar hasPropertyDescriptors = require('has-property-descriptors')();\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $defineProperty = hasPropertyDescriptors && GetIntrinsic('%Object.defineProperty%', true);\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = false;\n\t}\n}\n\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\n\nvar gopd = require('gopd');\n\n/** @type {(obj: Record, property: PropertyKey, value: unknown, nonEnumerable?: boolean | null, nonWritable?: boolean | null, nonConfigurable?: boolean | null, loose?: boolean) => void} */\nmodule.exports = function defineDataProperty(\n\tobj,\n\tproperty,\n\tvalue\n) {\n\tif (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {\n\t\tthrow new $TypeError('`obj` must be an object or a function`');\n\t}\n\tif (typeof property !== 'string' && typeof property !== 'symbol') {\n\t\tthrow new $TypeError('`property` must be a string or a symbol`');\n\t}\n\tif (arguments.length > 3 && typeof arguments[3] !== 'boolean' && arguments[3] !== null) {\n\t\tthrow new $TypeError('`nonEnumerable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 4 && typeof arguments[4] !== 'boolean' && arguments[4] !== null) {\n\t\tthrow new $TypeError('`nonWritable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 5 && typeof arguments[5] !== 'boolean' && arguments[5] !== null) {\n\t\tthrow new $TypeError('`nonConfigurable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 6 && typeof arguments[6] !== 'boolean') {\n\t\tthrow new $TypeError('`loose`, if provided, must be a boolean');\n\t}\n\n\tvar nonEnumerable = arguments.length > 3 ? arguments[3] : null;\n\tvar nonWritable = arguments.length > 4 ? arguments[4] : null;\n\tvar nonConfigurable = arguments.length > 5 ? arguments[5] : null;\n\tvar loose = arguments.length > 6 ? arguments[6] : false;\n\n\t/* @type {false | TypedPropertyDescriptor} */\n\tvar desc = !!gopd && gopd(obj, property);\n\n\tif ($defineProperty) {\n\t\t$defineProperty(obj, property, {\n\t\t\tconfigurable: nonConfigurable === null && desc ? desc.configurable : !nonConfigurable,\n\t\t\tenumerable: nonEnumerable === null && desc ? desc.enumerable : !nonEnumerable,\n\t\t\tvalue: value,\n\t\t\twritable: nonWritable === null && desc ? desc.writable : !nonWritable\n\t\t});\n\t} else if (loose || (!nonEnumerable && !nonWritable && !nonConfigurable)) {\n\t\t// must fall back to [[Set]], and was not explicitly asked to make non-enumerable, non-writable, or non-configurable\n\t\tobj[property] = value; // eslint-disable-line no-param-reassign\n\t} else {\n\t\tthrow new $SyntaxError('This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.');\n\t}\n};\n","'use strict';\n\n/** @type {import('./eval')} */\nmodule.exports = EvalError;\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Error;\n","'use strict';\n\n/** @type {import('./range')} */\nmodule.exports = RangeError;\n","'use strict';\n\n/** @type {import('./ref')} */\nmodule.exports = ReferenceError;\n","'use strict';\n\n/** @type {import('./syntax')} */\nmodule.exports = SyntaxError;\n","'use strict';\n\n/** @type {import('./type')} */\nmodule.exports = TypeError;\n","'use strict';\n\n/** @type {import('./uri')} */\nmodule.exports = URIError;\n","'use strict';\n\nvar isCallable = require('is-callable');\n\nvar toStr = Object.prototype.toString;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar forEachArray = function forEachArray(array, iterator, receiver) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (hasOwnProperty.call(array, i)) {\n if (receiver == null) {\n iterator(array[i], i, array);\n } else {\n iterator.call(receiver, array[i], i, array);\n }\n }\n }\n};\n\nvar forEachString = function forEachString(string, iterator, receiver) {\n for (var i = 0, len = string.length; i < len; i++) {\n // no such thing as a sparse string.\n if (receiver == null) {\n iterator(string.charAt(i), i, string);\n } else {\n iterator.call(receiver, string.charAt(i), i, string);\n }\n }\n};\n\nvar forEachObject = function forEachObject(object, iterator, receiver) {\n for (var k in object) {\n if (hasOwnProperty.call(object, k)) {\n if (receiver == null) {\n iterator(object[k], k, object);\n } else {\n iterator.call(receiver, object[k], k, object);\n }\n }\n }\n};\n\nvar forEach = function forEach(list, iterator, thisArg) {\n if (!isCallable(iterator)) {\n throw new TypeError('iterator must be a function');\n }\n\n var receiver;\n if (arguments.length >= 3) {\n receiver = thisArg;\n }\n\n if (toStr.call(list) === '[object Array]') {\n forEachArray(list, iterator, receiver);\n } else if (typeof list === 'string') {\n forEachString(list, iterator, receiver);\n } else {\n forEachObject(list, iterator, receiver);\n }\n};\n\nmodule.exports = forEach;\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar toStr = Object.prototype.toString;\nvar max = Math.max;\nvar funcType = '[object Function]';\n\nvar concatty = function concatty(a, b) {\n var arr = [];\n\n for (var i = 0; i < a.length; i += 1) {\n arr[i] = a[i];\n }\n for (var j = 0; j < b.length; j += 1) {\n arr[j + a.length] = b[j];\n }\n\n return arr;\n};\n\nvar slicy = function slicy(arrLike, offset) {\n var arr = [];\n for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {\n arr[j] = arrLike[i];\n }\n return arr;\n};\n\nvar joiny = function (arr, joiner) {\n var str = '';\n for (var i = 0; i < arr.length; i += 1) {\n str += arr[i];\n if (i + 1 < arr.length) {\n str += joiner;\n }\n }\n return str;\n};\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.apply(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slicy(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n concatty(args, arguments)\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n }\n return target.apply(\n that,\n concatty(args, arguments)\n );\n\n };\n\n var boundLength = max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs[i] = '$' + i;\n }\n\n bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar undefined;\n\nvar $Error = require('es-errors');\nvar $EvalError = require('es-errors/eval');\nvar $RangeError = require('es-errors/range');\nvar $ReferenceError = require('es-errors/ref');\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\nvar $URIError = require('es-errors/uri');\n\nvar $Function = Function;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\nvar hasProto = require('has-proto')();\n\nvar getProto = Object.getPrototypeOf || (\n\thasProto\n\t\t? function (x) { return x.__proto__; } // eslint-disable-line no-proto\n\t\t: null\n);\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t__proto__: null,\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n\t'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': $Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': $EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': $RangeError,\n\t'%ReferenceError%': $ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': $URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nif (getProto) {\n\ttry {\n\t\tnull.error; // eslint-disable-line no-unused-expressions\n\t} catch (e) {\n\t\t// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n\t\tvar errorProto = getProto(getProto(e));\n\t\tINTRINSICS['%Error.prototype%'] = errorProto;\n\t}\n}\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen && getProto) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t__proto__: null,\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('hasown');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\nvar $exec = bind.call(Function.call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\tif ($defineProperty) {\n\t\ttry {\n\t\t\t$defineProperty({}, 'a', { value: 1 });\n\t\t\treturn true;\n\t\t} catch (e) {\n\t\t\t// IE 8 has a broken defineProperty\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn false;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!hasPropertyDescriptors()) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n","'use strict';\n\nvar test = {\n\tfoo: {}\n};\n\nvar $Object = Object;\n\nmodule.exports = function hasProto() {\n\treturn { __proto__: test }.foo === test.foo && !({ __proto__: null } instanceof $Object);\n};\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n","'use strict';\n\nvar call = Function.prototype.call;\nvar $hasOwn = Object.prototype.hasOwnProperty;\nvar bind = require('function-bind');\n\n/** @type {(o: {}, p: PropertyKey) => p is keyof o} */\nmodule.exports = bind.call(call, $hasOwn);\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","'use strict';\n\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\n\nvar isStandardArguments = function isArguments(value) {\n\tif (hasToStringTag && value && typeof value === 'object' && Symbol.toStringTag in value) {\n\t\treturn false;\n\t}\n\treturn $toString(value) === '[object Arguments]';\n};\n\nvar isLegacyArguments = function isArguments(value) {\n\tif (isStandardArguments(value)) {\n\t\treturn true;\n\t}\n\treturn value !== null &&\n\t\ttypeof value === 'object' &&\n\t\ttypeof value.length === 'number' &&\n\t\tvalue.length >= 0 &&\n\t\t$toString(value) !== '[object Array]' &&\n\t\t$toString(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = (function () {\n\treturn isStandardArguments(arguments);\n}());\n\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\n","'use strict';\n\nvar fnToStr = Function.prototype.toString;\nvar reflectApply = typeof Reflect === 'object' && Reflect !== null && Reflect.apply;\nvar badArrayLike;\nvar isCallableMarker;\nif (typeof reflectApply === 'function' && typeof Object.defineProperty === 'function') {\n\ttry {\n\t\tbadArrayLike = Object.defineProperty({}, 'length', {\n\t\t\tget: function () {\n\t\t\t\tthrow isCallableMarker;\n\t\t\t}\n\t\t});\n\t\tisCallableMarker = {};\n\t\t// eslint-disable-next-line no-throw-literal\n\t\treflectApply(function () { throw 42; }, null, badArrayLike);\n\t} catch (_) {\n\t\tif (_ !== isCallableMarker) {\n\t\t\treflectApply = null;\n\t\t}\n\t}\n} else {\n\treflectApply = null;\n}\n\nvar constructorRegex = /^\\s*class\\b/;\nvar isES6ClassFn = function isES6ClassFunction(value) {\n\ttry {\n\t\tvar fnStr = fnToStr.call(value);\n\t\treturn constructorRegex.test(fnStr);\n\t} catch (e) {\n\t\treturn false; // not a function\n\t}\n};\n\nvar tryFunctionObject = function tryFunctionToStr(value) {\n\ttry {\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tfnToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar objectClass = '[object Object]';\nvar fnClass = '[object Function]';\nvar genClass = '[object GeneratorFunction]';\nvar ddaClass = '[object HTMLAllCollection]'; // IE 11\nvar ddaClass2 = '[object HTML document.all class]';\nvar ddaClass3 = '[object HTMLCollection]'; // IE 9-10\nvar hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; // better: use `has-tostringtag`\n\nvar isIE68 = !(0 in [,]); // eslint-disable-line no-sparse-arrays, comma-spacing\n\nvar isDDA = function isDocumentDotAll() { return false; };\nif (typeof document === 'object') {\n\t// Firefox 3 canonicalizes DDA to undefined when it's not accessed directly\n\tvar all = document.all;\n\tif (toStr.call(all) === toStr.call(document.all)) {\n\t\tisDDA = function isDocumentDotAll(value) {\n\t\t\t/* globals document: false */\n\t\t\t// in IE 6-8, typeof document.all is \"object\" and it's truthy\n\t\t\tif ((isIE68 || !value) && (typeof value === 'undefined' || typeof value === 'object')) {\n\t\t\t\ttry {\n\t\t\t\t\tvar str = toStr.call(value);\n\t\t\t\t\treturn (\n\t\t\t\t\t\tstr === ddaClass\n\t\t\t\t\t\t|| str === ddaClass2\n\t\t\t\t\t\t|| str === ddaClass3 // opera 12.16\n\t\t\t\t\t\t|| str === objectClass // IE 6-8\n\t\t\t\t\t) && value('') == null; // eslint-disable-line eqeqeq\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\t}\n}\n\nmodule.exports = reflectApply\n\t? function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\ttry {\n\t\t\treflectApply(value, null, badArrayLike);\n\t\t} catch (e) {\n\t\t\tif (e !== isCallableMarker) { return false; }\n\t\t}\n\t\treturn !isES6ClassFn(value) && tryFunctionObject(value);\n\t}\n\t: function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\tif (hasToStringTag) { return tryFunctionObject(value); }\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tvar strClass = toStr.call(value);\n\t\tif (strClass !== fnClass && strClass !== genClass && !(/^\\[object HTML/).test(strClass)) { return false; }\n\t\treturn tryFunctionObject(value);\n\t};\n","'use strict';\n\nvar toStr = Object.prototype.toString;\nvar fnToStr = Function.prototype.toString;\nvar isFnRegex = /^\\s*(?:function)?\\*/;\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar getProto = Object.getPrototypeOf;\nvar getGeneratorFunc = function () { // eslint-disable-line consistent-return\n\tif (!hasToStringTag) {\n\t\treturn false;\n\t}\n\ttry {\n\t\treturn Function('return function*() {}')();\n\t} catch (e) {\n\t}\n};\nvar GeneratorFunction;\n\nmodule.exports = function isGeneratorFunction(fn) {\n\tif (typeof fn !== 'function') {\n\t\treturn false;\n\t}\n\tif (isFnRegex.test(fnToStr.call(fn))) {\n\t\treturn true;\n\t}\n\tif (!hasToStringTag) {\n\t\tvar str = toStr.call(fn);\n\t\treturn str === '[object GeneratorFunction]';\n\t}\n\tif (!getProto) {\n\t\treturn false;\n\t}\n\tif (typeof GeneratorFunction === 'undefined') {\n\t\tvar generatorFunc = getGeneratorFunc();\n\t\tGeneratorFunction = generatorFunc ? getProto(generatorFunc) : false;\n\t}\n\treturn getProto(fn) === GeneratorFunction;\n};\n","'use strict';\n\nvar whichTypedArray = require('which-typed-array');\n\n/** @type {import('.')} */\nmodule.exports = function isTypedArray(value) {\n\treturn !!whichTypedArray(value);\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar define = require('define-data-property');\nvar hasDescriptors = require('has-property-descriptors')();\nvar gOPD = require('gopd');\n\nvar $TypeError = require('es-errors/type');\nvar $floor = GetIntrinsic('%Math.floor%');\n\n/** @typedef {(...args: unknown[]) => unknown} Func */\n\n/** @type {(fn: T, length: number, loose?: boolean) => T} */\nmodule.exports = function setFunctionLength(fn, length) {\n\tif (typeof fn !== 'function') {\n\t\tthrow new $TypeError('`fn` is not a function');\n\t}\n\tif (typeof length !== 'number' || length < 0 || length > 0xFFFFFFFF || $floor(length) !== length) {\n\t\tthrow new $TypeError('`length` must be a positive 32-bit integer');\n\t}\n\n\tvar loose = arguments.length > 2 && !!arguments[2];\n\n\tvar functionLengthIsConfigurable = true;\n\tvar functionLengthIsWritable = true;\n\tif ('length' in fn && gOPD) {\n\t\tvar desc = gOPD(fn, 'length');\n\t\tif (desc && !desc.configurable) {\n\t\t\tfunctionLengthIsConfigurable = false;\n\t\t}\n\t\tif (desc && !desc.writable) {\n\t\t\tfunctionLengthIsWritable = false;\n\t\t}\n\t}\n\n\tif (functionLengthIsConfigurable || functionLengthIsWritable || !loose) {\n\t\tif (hasDescriptors) {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'length', length, true, true);\n\t\t} else {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'length', length);\n\t\t}\n\t}\n\treturn fn;\n};\n","module.exports = function isBuffer(arg) {\n return arg && typeof arg === 'object'\n && typeof arg.copy === 'function'\n && typeof arg.fill === 'function'\n && typeof arg.readUInt8 === 'function';\n}","// Currently in sync with Node.js lib/internal/util/types.js\n// https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9\n\n'use strict';\n\nvar isArgumentsObject = require('is-arguments');\nvar isGeneratorFunction = require('is-generator-function');\nvar whichTypedArray = require('which-typed-array');\nvar isTypedArray = require('is-typed-array');\n\nfunction uncurryThis(f) {\n return f.call.bind(f);\n}\n\nvar BigIntSupported = typeof BigInt !== 'undefined';\nvar SymbolSupported = typeof Symbol !== 'undefined';\n\nvar ObjectToString = uncurryThis(Object.prototype.toString);\n\nvar numberValue = uncurryThis(Number.prototype.valueOf);\nvar stringValue = uncurryThis(String.prototype.valueOf);\nvar booleanValue = uncurryThis(Boolean.prototype.valueOf);\n\nif (BigIntSupported) {\n var bigIntValue = uncurryThis(BigInt.prototype.valueOf);\n}\n\nif (SymbolSupported) {\n var symbolValue = uncurryThis(Symbol.prototype.valueOf);\n}\n\nfunction checkBoxedPrimitive(value, prototypeValueOf) {\n if (typeof value !== 'object') {\n return false;\n }\n try {\n prototypeValueOf(value);\n return true;\n } catch(e) {\n return false;\n }\n}\n\nexports.isArgumentsObject = isArgumentsObject;\nexports.isGeneratorFunction = isGeneratorFunction;\nexports.isTypedArray = isTypedArray;\n\n// Taken from here and modified for better browser support\n// https://github.com/sindresorhus/p-is-promise/blob/cda35a513bda03f977ad5cde3a079d237e82d7ef/index.js\nfunction isPromise(input) {\n\treturn (\n\t\t(\n\t\t\ttypeof Promise !== 'undefined' &&\n\t\t\tinput instanceof Promise\n\t\t) ||\n\t\t(\n\t\t\tinput !== null &&\n\t\t\ttypeof input === 'object' &&\n\t\t\ttypeof input.then === 'function' &&\n\t\t\ttypeof input.catch === 'function'\n\t\t)\n\t);\n}\nexports.isPromise = isPromise;\n\nfunction isArrayBufferView(value) {\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n return ArrayBuffer.isView(value);\n }\n\n return (\n isTypedArray(value) ||\n isDataView(value)\n );\n}\nexports.isArrayBufferView = isArrayBufferView;\n\n\nfunction isUint8Array(value) {\n return whichTypedArray(value) === 'Uint8Array';\n}\nexports.isUint8Array = isUint8Array;\n\nfunction isUint8ClampedArray(value) {\n return whichTypedArray(value) === 'Uint8ClampedArray';\n}\nexports.isUint8ClampedArray = isUint8ClampedArray;\n\nfunction isUint16Array(value) {\n return whichTypedArray(value) === 'Uint16Array';\n}\nexports.isUint16Array = isUint16Array;\n\nfunction isUint32Array(value) {\n return whichTypedArray(value) === 'Uint32Array';\n}\nexports.isUint32Array = isUint32Array;\n\nfunction isInt8Array(value) {\n return whichTypedArray(value) === 'Int8Array';\n}\nexports.isInt8Array = isInt8Array;\n\nfunction isInt16Array(value) {\n return whichTypedArray(value) === 'Int16Array';\n}\nexports.isInt16Array = isInt16Array;\n\nfunction isInt32Array(value) {\n return whichTypedArray(value) === 'Int32Array';\n}\nexports.isInt32Array = isInt32Array;\n\nfunction isFloat32Array(value) {\n return whichTypedArray(value) === 'Float32Array';\n}\nexports.isFloat32Array = isFloat32Array;\n\nfunction isFloat64Array(value) {\n return whichTypedArray(value) === 'Float64Array';\n}\nexports.isFloat64Array = isFloat64Array;\n\nfunction isBigInt64Array(value) {\n return whichTypedArray(value) === 'BigInt64Array';\n}\nexports.isBigInt64Array = isBigInt64Array;\n\nfunction isBigUint64Array(value) {\n return whichTypedArray(value) === 'BigUint64Array';\n}\nexports.isBigUint64Array = isBigUint64Array;\n\nfunction isMapToString(value) {\n return ObjectToString(value) === '[object Map]';\n}\nisMapToString.working = (\n typeof Map !== 'undefined' &&\n isMapToString(new Map())\n);\n\nfunction isMap(value) {\n if (typeof Map === 'undefined') {\n return false;\n }\n\n return isMapToString.working\n ? isMapToString(value)\n : value instanceof Map;\n}\nexports.isMap = isMap;\n\nfunction isSetToString(value) {\n return ObjectToString(value) === '[object Set]';\n}\nisSetToString.working = (\n typeof Set !== 'undefined' &&\n isSetToString(new Set())\n);\nfunction isSet(value) {\n if (typeof Set === 'undefined') {\n return false;\n }\n\n return isSetToString.working\n ? isSetToString(value)\n : value instanceof Set;\n}\nexports.isSet = isSet;\n\nfunction isWeakMapToString(value) {\n return ObjectToString(value) === '[object WeakMap]';\n}\nisWeakMapToString.working = (\n typeof WeakMap !== 'undefined' &&\n isWeakMapToString(new WeakMap())\n);\nfunction isWeakMap(value) {\n if (typeof WeakMap === 'undefined') {\n return false;\n }\n\n return isWeakMapToString.working\n ? isWeakMapToString(value)\n : value instanceof WeakMap;\n}\nexports.isWeakMap = isWeakMap;\n\nfunction isWeakSetToString(value) {\n return ObjectToString(value) === '[object WeakSet]';\n}\nisWeakSetToString.working = (\n typeof WeakSet !== 'undefined' &&\n isWeakSetToString(new WeakSet())\n);\nfunction isWeakSet(value) {\n return isWeakSetToString(value);\n}\nexports.isWeakSet = isWeakSet;\n\nfunction isArrayBufferToString(value) {\n return ObjectToString(value) === '[object ArrayBuffer]';\n}\nisArrayBufferToString.working = (\n typeof ArrayBuffer !== 'undefined' &&\n isArrayBufferToString(new ArrayBuffer())\n);\nfunction isArrayBuffer(value) {\n if (typeof ArrayBuffer === 'undefined') {\n return false;\n }\n\n return isArrayBufferToString.working\n ? isArrayBufferToString(value)\n : value instanceof ArrayBuffer;\n}\nexports.isArrayBuffer = isArrayBuffer;\n\nfunction isDataViewToString(value) {\n return ObjectToString(value) === '[object DataView]';\n}\nisDataViewToString.working = (\n typeof ArrayBuffer !== 'undefined' &&\n typeof DataView !== 'undefined' &&\n isDataViewToString(new DataView(new ArrayBuffer(1), 0, 1))\n);\nfunction isDataView(value) {\n if (typeof DataView === 'undefined') {\n return false;\n }\n\n return isDataViewToString.working\n ? isDataViewToString(value)\n : value instanceof DataView;\n}\nexports.isDataView = isDataView;\n\n// Store a copy of SharedArrayBuffer in case it's deleted elsewhere\nvar SharedArrayBufferCopy = typeof SharedArrayBuffer !== 'undefined' ? SharedArrayBuffer : undefined;\nfunction isSharedArrayBufferToString(value) {\n return ObjectToString(value) === '[object SharedArrayBuffer]';\n}\nfunction isSharedArrayBuffer(value) {\n if (typeof SharedArrayBufferCopy === 'undefined') {\n return false;\n }\n\n if (typeof isSharedArrayBufferToString.working === 'undefined') {\n isSharedArrayBufferToString.working = isSharedArrayBufferToString(new SharedArrayBufferCopy());\n }\n\n return isSharedArrayBufferToString.working\n ? isSharedArrayBufferToString(value)\n : value instanceof SharedArrayBufferCopy;\n}\nexports.isSharedArrayBuffer = isSharedArrayBuffer;\n\nfunction isAsyncFunction(value) {\n return ObjectToString(value) === '[object AsyncFunction]';\n}\nexports.isAsyncFunction = isAsyncFunction;\n\nfunction isMapIterator(value) {\n return ObjectToString(value) === '[object Map Iterator]';\n}\nexports.isMapIterator = isMapIterator;\n\nfunction isSetIterator(value) {\n return ObjectToString(value) === '[object Set Iterator]';\n}\nexports.isSetIterator = isSetIterator;\n\nfunction isGeneratorObject(value) {\n return ObjectToString(value) === '[object Generator]';\n}\nexports.isGeneratorObject = isGeneratorObject;\n\nfunction isWebAssemblyCompiledModule(value) {\n return ObjectToString(value) === '[object WebAssembly.Module]';\n}\nexports.isWebAssemblyCompiledModule = isWebAssemblyCompiledModule;\n\nfunction isNumberObject(value) {\n return checkBoxedPrimitive(value, numberValue);\n}\nexports.isNumberObject = isNumberObject;\n\nfunction isStringObject(value) {\n return checkBoxedPrimitive(value, stringValue);\n}\nexports.isStringObject = isStringObject;\n\nfunction isBooleanObject(value) {\n return checkBoxedPrimitive(value, booleanValue);\n}\nexports.isBooleanObject = isBooleanObject;\n\nfunction isBigIntObject(value) {\n return BigIntSupported && checkBoxedPrimitive(value, bigIntValue);\n}\nexports.isBigIntObject = isBigIntObject;\n\nfunction isSymbolObject(value) {\n return SymbolSupported && checkBoxedPrimitive(value, symbolValue);\n}\nexports.isSymbolObject = isSymbolObject;\n\nfunction isBoxedPrimitive(value) {\n return (\n isNumberObject(value) ||\n isStringObject(value) ||\n isBooleanObject(value) ||\n isBigIntObject(value) ||\n isSymbolObject(value)\n );\n}\nexports.isBoxedPrimitive = isBoxedPrimitive;\n\nfunction isAnyArrayBuffer(value) {\n return typeof Uint8Array !== 'undefined' && (\n isArrayBuffer(value) ||\n isSharedArrayBuffer(value)\n );\n}\nexports.isAnyArrayBuffer = isAnyArrayBuffer;\n\n['isProxy', 'isExternal', 'isModuleNamespaceObject'].forEach(function(method) {\n Object.defineProperty(exports, method, {\n enumerable: false,\n value: function() {\n throw new Error(method + ' is not supported in userland');\n }\n });\n});\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n if (typeof process !== 'undefined' && process.noDeprecation === true) {\n return fn;\n }\n\n // Allow for deprecating things in the process of starting up.\n if (typeof process === 'undefined') {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnvRegex = /^$/;\n\nif (process.env.NODE_DEBUG) {\n var debugEnv = process.env.NODE_DEBUG;\n debugEnv = debugEnv.replace(/[|\\\\{}()[\\]^$+?.]/g, '\\\\$&')\n .replace(/\\*/g, '.*')\n .replace(/,/g, '$|^')\n .toUpperCase();\n debugEnvRegex = new RegExp('^' + debugEnv + '$', 'i');\n}\nexports.debuglog = function(set) {\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (debugEnvRegex.test(set)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').slice(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.slice(1, -1);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nexports.types = require('./support/types');\n\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\nexports.types.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\nexports.types.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\nexports.types.isNativeError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n if (typeof original !== 'function')\n throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return Object.defineProperties(\n fn,\n getOwnPropertyDescriptors(original)\n );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n }\n\n // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n var self = this;\n var cb = function() {\n return maybeCb.apply(self, arguments);\n };\n // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n original.apply(this, args)\n .then(function(ret) { process.nextTick(cb.bind(null, null, ret)) },\n function(rej) { process.nextTick(callbackifyOnRejected.bind(null, rej, cb)) });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified,\n getOwnPropertyDescriptors(original));\n return callbackified;\n}\nexports.callbackify = callbackify;\n","'use strict';\n\nvar forEach = require('for-each');\nvar availableTypedArrays = require('available-typed-arrays');\nvar callBind = require('call-bind');\nvar callBound = require('call-bind/callBound');\nvar gOPD = require('gopd');\n\nvar $toString = callBound('Object.prototype.toString');\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\nvar typedArrays = availableTypedArrays();\n\nvar $slice = callBound('String.prototype.slice');\nvar getPrototypeOf = Object.getPrototypeOf; // require('getprototypeof');\n\nvar $indexOf = callBound('Array.prototype.indexOf', true) || /** @type {(array: readonly unknown[], value: unknown) => keyof array} */ function indexOf(array, value) {\n\tfor (var i = 0; i < array.length; i += 1) {\n\t\tif (array[i] === value) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n};\n\n/** @typedef {Int8Array | Uint8Array | Uint8ClampedArray | Int16Array | Uint16Array | Int32Array | Uint32Array | Float32Array | Float64Array | BigInt64Array | BigUint64Array} TypedArray */\n/** @typedef {'Int8Array' | 'Uint8Array' | 'Uint8ClampedArray' | 'Int16Array' | 'Uint16Array' | 'Int32Array' | 'Uint32Array' | 'Float32Array' | 'Float64Array' | 'BigInt64Array' | 'BigUint64Array'} TypedArrayName */\n/** @type {{ [k in `\\$${TypedArrayName}`]?: (receiver: TypedArray) => string | typeof Uint8Array.prototype.slice.call | typeof Uint8Array.prototype.set.call } & { __proto__: null }} */\nvar cache = { __proto__: null };\nif (hasToStringTag && gOPD && getPrototypeOf) {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tif (Symbol.toStringTag in arr) {\n\t\t\tvar proto = getPrototypeOf(arr);\n\t\t\t// @ts-expect-error TS won't narrow inside a closure\n\t\t\tvar descriptor = gOPD(proto, Symbol.toStringTag);\n\t\t\tif (!descriptor) {\n\t\t\t\tvar superProto = getPrototypeOf(proto);\n\t\t\t\t// @ts-expect-error TS won't narrow inside a closure\n\t\t\t\tdescriptor = gOPD(superProto, Symbol.toStringTag);\n\t\t\t}\n\t\t\t// @ts-expect-error TODO: fix\n\t\t\tcache['$' + typedArray] = callBind(descriptor.get);\n\t\t}\n\t});\n} else {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tvar fn = arr.slice || arr.set;\n\t\tif (fn) {\n\t\t\t// @ts-expect-error TODO: fix\n\t\t\tcache['$' + typedArray] = callBind(fn);\n\t\t}\n\t});\n}\n\n/** @type {import('.')} */\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n\t/** @type {ReturnType} */ var found = false;\n\tforEach(\n\t\t// eslint-disable-next-line no-extra-parens\n\t\t/** @type {Record<`\\$${TypedArrayName}`, typeof cache>} */ /** @type {any} */ (cache),\n\t\t/** @type {(getter: typeof cache, name: `\\$${TypedArrayName}`) => void} */ function (getter, typedArray) {\n\t\t\tif (!found) {\n\t\t\t\ttry {\n\t\t\t\t// @ts-expect-error TODO: fix\n\t\t\t\t\tif ('$' + getter(value) === typedArray) {\n\t\t\t\t\t\tfound = $slice(typedArray, 1);\n\t\t\t\t\t}\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t}\n\t);\n\treturn found;\n};\n\n/** @type {import('.')} */\nvar trySlices = function tryAllSlices(value) {\n\t/** @type {ReturnType} */ var found = false;\n\tforEach(\n\t\t// eslint-disable-next-line no-extra-parens\n\t\t/** @type {any} */ (cache),\n\t\t/** @type {(getter: typeof cache, name: `\\$${TypedArrayName}`) => void} */ function (getter, name) {\n\t\t\tif (!found) {\n\t\t\t\ttry {\n\t\t\t\t// @ts-expect-error TODO: fix\n\t\t\t\t\tgetter(value);\n\t\t\t\t\tfound = $slice(name, 1);\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t}\n\t);\n\treturn found;\n};\n\n/** @type {import('.')} */\nmodule.exports = function whichTypedArray(value) {\n\tif (!value || typeof value !== 'object') { return false; }\n\tif (!hasToStringTag) {\n\t\tvar tag = $slice($toString(value), 8, -1);\n\t\tif ($indexOf(typedArrays, tag) > -1) {\n\t\t\treturn tag;\n\t\t}\n\t\tif (tag !== 'Object') {\n\t\t\treturn false;\n\t\t}\n\t\t// node < 0.6 hits here on real Typed Arrays\n\t\treturn trySlices(value);\n\t}\n\tif (!gOPD) { return null; } // unknown engine\n\treturn tryTypedArrays(value);\n};\n","'use strict';\n\nvar /** @type {ReturnType} */ possibleNames = [\n\t'BigInt64Array',\n\t'BigUint64Array',\n\t'Float32Array',\n\t'Float64Array',\n\t'Int16Array',\n\t'Int32Array',\n\t'Int8Array',\n\t'Uint16Array',\n\t'Uint32Array',\n\t'Uint8Array',\n\t'Uint8ClampedArray'\n];\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\n\n/** @type {import('.')} */\nmodule.exports = function availableTypedArrays() {\n\tvar /** @type {ReturnType} */ out = [];\n\tfor (var i = 0; i < possibleNames.length; i++) {\n\t\tif (typeof g[possibleNames[i]] === 'function') {\n\t\t\t// @ts-expect-error\n\t\t\tout[out.length] = possibleNames[i];\n\t\t}\n\t}\n\treturn out;\n};\n"],"names":["GetIntrinsic","callBind","$indexOf","module","exports","name","allowMissing","intrinsic","bind","setFunctionLength","$TypeError","$apply","$call","$reflectApply","call","$defineProperty","$max","value","e","originalFunction","func","arguments","length","applyBind","apply","hasPropertyDescriptors","$SyntaxError","gopd","obj","property","nonEnumerable","nonWritable","nonConfigurable","loose","desc","configurable","enumerable","writable","EvalError","Error","RangeError","ReferenceError","SyntaxError","TypeError","URIError","isCallable","toStr","Object","prototype","toString","hasOwnProperty","forEachArray","array","iterator","receiver","i","len","forEachString","string","charAt","forEachObject","object","k","forEach","list","thisArg","ERROR_MESSAGE","max","Math","funcType","concatty","a","b","arr","j","slicy","arrLike","offset","joiny","joiner","str","that","target","this","bound","args","binder","result","boundLength","boundArgs","Function","Empty","implementation","undefined","$Error","$EvalError","$RangeError","$ReferenceError","$URIError","$Function","getEvalledConstructor","expressionSyntax","$gOPD","getOwnPropertyDescriptor","throwTypeError","ThrowTypeError","calleeThrows","get","gOPDthrows","hasSymbols","hasProto","getProto","getPrototypeOf","x","__proto__","needsEval","TypedArray","Uint8Array","INTRINSICS","AggregateError","Array","ArrayBuffer","Symbol","Atomics","BigInt","BigInt64Array","BigUint64Array","Boolean","DataView","Date","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","eval","Float32Array","Float64Array","FinalizationRegistry","Int8Array","Int16Array","Int32Array","isFinite","isNaN","JSON","Map","Number","parseFloat","parseInt","Promise","Proxy","Reflect","RegExp","Set","SharedArrayBuffer","String","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","WeakRef","WeakSet","error","errorProto","doEval","fn","gen","LEGACY_ALIASES","hasOwn","$concat","concat","$spliceApply","splice","$replace","replace","$strSlice","slice","$exec","exec","rePropName","reEscapeChar","stringToPath","first","last","match","number","quote","subString","getBaseIntrinsic","alias","intrinsicName","parts","intrinsicBaseName","intrinsicRealName","skipFurtherCaching","isOwn","part","hasArrayLengthDefineBug","test","foo","$Object","origSymbol","hasSymbolSham","getOwnPropertySymbols","sym","symObj","symVal","keys","getOwnPropertyNames","syms","propertyIsEnumerable","descriptor","toStringTag","$hasOwn","create","ctor","superCtor","super_","constructor","TempCtor","hasToStringTag","callBound","$toString","isStandardArguments","isLegacyArguments","callee","supportsStandardArguments","badArrayLike","isCallableMarker","fnToStr","reflectApply","defineProperty","_","constructorRegex","isES6ClassFn","fnStr","tryFunctionObject","objectClass","fnClass","genClass","ddaClass","ddaClass2","ddaClass3","isIE68","isDDA","document","all","strClass","GeneratorFunction","isFnRegex","getGeneratorFunc","generatorFunc","whichTypedArray","define","hasDescriptors","gOPD","$floor","functionLengthIsConfigurable","functionLengthIsWritable","arg","copy","fill","readUInt8","isArgumentsObject","isGeneratorFunction","isTypedArray","uncurryThis","f","BigIntSupported","SymbolSupported","ObjectToString","numberValue","valueOf","stringValue","booleanValue","bigIntValue","symbolValue","checkBoxedPrimitive","prototypeValueOf","isPromise","input","then","catch","isArrayBufferView","isView","isDataView","isUint8Array","isUint8ClampedArray","isUint16Array","isUint32Array","isInt8Array","isInt16Array","isInt32Array","isFloat32Array","isFloat64Array","isBigInt64Array","isBigUint64Array","isMapToString","isMap","working","isSetToString","isSet","isWeakMapToString","isWeakMap","isWeakSetToString","isWeakSet","isArrayBufferToString","isArrayBuffer","isDataViewToString","SharedArrayBufferCopy","isSharedArrayBufferToString","isSharedArrayBuffer","isAsyncFunction","isMapIterator","isSetIterator","isGeneratorObject","isWebAssemblyCompiledModule","isNumberObject","isStringObject","isBooleanObject","isBigIntObject","isSymbolObject","isBoxedPrimitive","isAnyArrayBuffer","method","getOwnPropertyDescriptors","descriptors","formatRegExp","format","isString","objects","push","inspect","join","stringify","isNull","isObject","deprecate","msg","process","noDeprecation","warned","deprecated","throwDeprecation","traceDeprecation","console","trace","debugs","debugEnvRegex","NODE_DEBUG","debugEnv","toUpperCase","opts","ctx","seen","stylize","stylizeNoColor","depth","colors","isBoolean","showHidden","_extend","isUndefined","customInspect","stylizeWithColor","formatValue","styleType","style","styles","arrayToHash","hash","val","idx","recurseTimes","isFunction","ret","primitive","formatPrimitive","visibleKeys","isError","indexOf","formatError","isRegExp","isDate","output","base","braces","isArray","n","toUTCString","formatArray","map","key","formatProperty","pop","reduceToSingleString","simple","isNumber","l","set","split","line","reduce","prev","cur","numLinesEst","ar","isNullOrUndefined","isSymbol","re","objectToString","d","isPrimitive","o","pad","debuglog","pid","types","isNativeError","isBuffer","months","timestamp","time","getHours","getMinutes","getSeconds","getDate","getMonth","prop","log","inherits","origin","add","kCustomPromisifiedSymbol","callbackifyOnRejected","reason","cb","newReason","callbackify","original","callbackified","maybeCb","self","nextTick","rej","setPrototypeOf","defineProperties","promisify","promiseResolve","promiseReject","promise","resolve","reject","err","custom","availableTypedArrays","g","globalThis","typedArrays","$slice","cache","typedArray","proto","superProto","tryTypedArrays","found","getter","trySlices","tag","possibleNames","out"],"sourceRoot":""} \ No newline at end of file diff --git a/cumulus_lambda_functions/uds_api/stac_browser/js/572.85a7e414.js b/cumulus_lambda_functions/uds_api/stac_browser/js/572.40caaa91.js similarity index 99% rename from cumulus_lambda_functions/uds_api/stac_browser/js/572.85a7e414.js rename to cumulus_lambda_functions/uds_api/stac_browser/js/572.40caaa91.js index 044c1dce..f59e804d 100644 --- a/cumulus_lambda_functions/uds_api/stac_browser/js/572.85a7e414.js +++ b/cumulus_lambda_functions/uds_api/stac_browser/js/572.40caaa91.js @@ -65,4 +65,4 @@ e.read=function(t,e,n,r,i){var o,s,a=8*i-r-1,l=(1<>1,h=-7,c=n?i-1:0,f= * (c) 2010-2023 Vladimir Agafonkin, (c) 2010-2011 CloudMade */ (function(t,n){n(e)})(0,(function(t){"use strict";var e="1.9.4";function n(t){var e,n,r,i;for(n=1,r=arguments.length;n0?Math.floor(t):Math.ceil(t)};function j(t,e,n){return t instanceof I?t:y(t)?new I(t[0],t[1]):void 0===t||null===t?t:"object"===typeof t&&"x"in t&&"y"in t?new I(t.x,t.y):new I(t,e,n)}function N(t,e){if(t)for(var n=e?[t,e]:t,r=0,i=n.length;r=this.min.x&&n.x<=this.max.x&&e.y>=this.min.y&&n.y<=this.max.y},intersects:function(t){t=B(t);var e=this.min,n=this.max,r=t.min,i=t.max,o=i.x>=e.x&&r.x<=n.x,s=i.y>=e.y&&r.y<=n.y;return o&&s},overlaps:function(t){t=B(t);var e=this.min,n=this.max,r=t.min,i=t.max,o=i.x>e.x&&r.xe.y&&r.y=r.lat&&n.lat<=i.lat&&e.lng>=r.lng&&n.lng<=i.lng},intersects:function(t){t=F(t);var e=this._southWest,n=this._northEast,r=t.getSouthWest(),i=t.getNorthEast(),o=i.lat>=e.lat&&r.lat<=n.lat,s=i.lng>=e.lng&&r.lng<=n.lng;return o&&s},overlaps:function(t){t=F(t);var e=this._southWest,n=this._northEast,r=t.getSouthWest(),i=t.getNorthEast(),o=i.lat>e.lat&&r.late.lng&&r.lng1,Ct=function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("testPassiveEventSupport",u,e),window.removeEventListener("testPassiveEventSupport",u,e)}catch(n){}return t}(),Tt=function(){return!!document.createElement("canvas").getContext}(),Ot=!(!document.createElementNS||!Y("svg").createSVGRect),Pt=!!Ot&&function(){var t=document.createElement("div");return t.innerHTML="","http://www.w3.org/2000/svg"===(t.firstChild&&t.firstChild.namespaceURI)}(),Lt=!Ot&&function(){try{var t=document.createElement("div");t.innerHTML='';var e=t.firstChild;return e.style.behavior="url(#default#VML)",e&&"object"===typeof e.adj}catch(n){return!1}}(),It=0===navigator.platform.indexOf("Mac"),Rt=0===navigator.platform.indexOf("Linux");function jt(t){return navigator.userAgent.toLowerCase().indexOf(t)>=0}var Nt={ie:$,ielt9:tt,edge:et,webkit:nt,android:rt,android23:it,androidStock:st,opera:at,chrome:lt,gecko:ut,safari:ht,phantom:ct,opera12:ft,win:dt,ie3d:pt,webkit3d:mt,gecko3d:gt,any3d:yt,mobile:_t,mobileWebkit:vt,mobileWebkit3d:bt,msPointer:wt,pointer:xt,touch:St,touchNative:kt,mobileOpera:Mt,mobileGecko:At,retina:Et,passiveEvents:Ct,canvas:Tt,svg:Ot,vml:Lt,inlineSvg:Pt,mac:It,linux:Rt},Bt=Nt.msPointer?"MSPointerDown":"pointerdown",Dt=Nt.msPointer?"MSPointerMove":"pointermove",Ft=Nt.msPointer?"MSPointerUp":"pointerup",Ut=Nt.msPointer?"MSPointerCancel":"pointercancel",Gt={touchstart:Bt,touchmove:Dt,touchend:Ft,touchcancel:Ut},zt={touchstart:Jt,touchmove:Xt,touchend:Xt,touchcancel:Xt},Ht={},qt=!1;function Zt(t,e,n){return"touchstart"===e&&Yt(),zt[e]?(n=zt[e].bind(this,n),t.addEventListener(Gt[e],n,!1),n):(console.warn("wrong event specified:",e),u)}function Wt(t,e,n){Gt[e]?t.removeEventListener(Gt[e],n,!1):console.warn("wrong event specified:",e)}function Vt(t){Ht[t.pointerId]=t}function Qt(t){Ht[t.pointerId]&&(Ht[t.pointerId]=t)}function Kt(t){delete Ht[t.pointerId]}function Yt(){qt||(document.addEventListener(Bt,Vt,!0),document.addEventListener(Dt,Qt,!0),document.addEventListener(Ft,Kt,!0),document.addEventListener(Ut,Kt,!0),qt=!0)}function Xt(t,e){if(e.pointerType!==(e.MSPOINTER_TYPE_MOUSE||"mouse")){for(var n in e.touches=[],Ht)e.touches.push(Ht[n]);e.changedTouches=[e],t(e)}}function Jt(t,e){e.MSPOINTER_TYPE_TOUCH&&e.pointerType===e.MSPOINTER_TYPE_TOUCH&&Ve(e),Xt(t,e)}function $t(t){var e,n,r={};for(n in t)e=t[n],r[n]=e&&e.bind?e.bind(t):e;return t=r,r.type="dblclick",r.detail=2,r.isTrusted=!1,r._simulated=!0,r}var te=200;function ee(t,e){t.addEventListener("dblclick",e);var n,r=0;function i(t){if(1===t.detail){if("mouse"!==t.pointerType&&(!t.sourceCapabilities||t.sourceCapabilities.firesTouchEvents)){var i=Ke(t);if(!i.some((function(t){return t instanceof HTMLLabelElement&&t.attributes.for}))||i.some((function(t){return t instanceof HTMLInputElement||t instanceof HTMLSelectElement}))){var o=Date.now();o-r<=te?(n++,2===n&&e($t(t))):n=1,r=o}}}else n=t.detail}return t.addEventListener("click",i),{dblclick:e,simDblclick:i}}function ne(t,e){t.removeEventListener("dblclick",e.dblclick),t.removeEventListener("click",e.simDblclick)}var re,ie,oe,se,ae,le=Me(["transform","webkitTransform","OTransform","MozTransform","msTransform"]),ue=Me(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),he="webkitTransition"===ue||"OTransition"===ue?ue+"End":"transitionend";function ce(t){return"string"===typeof t?document.getElementById(t):t}function fe(t,e){var n=t.style[e]||t.currentStyle&&t.currentStyle[e];if((!n||"auto"===n)&&document.defaultView){var r=document.defaultView.getComputedStyle(t,null);n=r?r[e]:null}return"auto"===n?null:n}function de(t,e,n){var r=document.createElement(t);return r.className=e||"",n&&n.appendChild(r),r}function pe(t){var e=t.parentNode;e&&e.removeChild(t)}function me(t){while(t.firstChild)t.removeChild(t.firstChild)}function ge(t){var e=t.parentNode;e&&e.lastChild!==t&&e.appendChild(t)}function ye(t){var e=t.parentNode;e&&e.firstChild!==t&&e.insertBefore(t,e.firstChild)}function _e(t,e){if(void 0!==t.classList)return t.classList.contains(e);var n=xe(t);return n.length>0&&new RegExp("(^|\\s)"+e+"(\\s|$)").test(n)}function ve(t,e){if(void 0!==t.classList)for(var n=f(e),r=0,i=n.length;r0?2*window.devicePixelRatio:1;function Je(t){return Nt.edge?t.wheelDeltaY/2:t.deltaY&&0===t.deltaMode?-t.deltaY/Xe:t.deltaY&&1===t.deltaMode?20*-t.deltaY:t.deltaY&&2===t.deltaMode?60*-t.deltaY:t.deltaX||t.deltaZ?0:t.wheelDelta?(t.wheelDeltaY||t.wheelDelta)/2:t.detail&&Math.abs(t.detail)<32765?20*-t.detail:t.detail?t.detail/-32765*60:0}function $e(t,e){var n=e.relatedTarget;if(!n)return!0;try{while(n&&n!==t)n=n.parentNode}catch(r){return!1}return n!==t}var tn={__proto__:null,on:Be,off:Fe,stopPropagation:qe,disableScrollPropagation:Ze,disableClickPropagation:We,preventDefault:Ve,stop:Qe,getPropagationPath:Ke,getMousePosition:Ye,getWheelDelta:Je,isExternalTarget:$e,addListener:Be,removeListener:Fe},en=P.extend({run:function(t,e,n,r){this.stop(),this._el=t,this._inProgress=!0,this._duration=n||.25,this._easeOutPower=1/Math.max(r||.5,.2),this._startPos=Ce(t),this._offset=e.subtract(this._startPos),this._startTime=+new Date,this.fire("start"),this._animate()},stop:function(){this._inProgress&&(this._step(!0),this._complete())},_animate:function(){this._animId=M(this._animate,this),this._step()},_step:function(t){var e=+new Date-this._startTime,n=1e3*this._duration;ethis.options.maxZoom)?this.setZoom(t):this},panInsideBounds:function(t,e){this._enforcingBounds=!0;var n=this.getCenter(),r=this._limitCenter(n,this._zoom,F(t));return n.equals(r)||this.panTo(r,e),this._enforcingBounds=!1,this},panInside:function(t,e){e=e||{};var n=j(e.paddingTopLeft||e.padding||[0,0]),r=j(e.paddingBottomRight||e.padding||[0,0]),i=this.project(this.getCenter()),o=this.project(t),s=this.getPixelBounds(),a=B([s.min.add(n),s.max.subtract(r)]),l=a.getSize();if(!a.contains(o)){this._enforcingBounds=!0;var u=o.subtract(a.getCenter()),h=a.extend(o).getSize().subtract(l);i.x+=u.x<0?-h.x:h.x,i.y+=u.y<0?-h.y:h.y,this.panTo(this.unproject(i),e),this._enforcingBounds=!1}return this},invalidateSize:function(t){if(!this._loaded)return this;t=n({animate:!1,pan:!0},!0===t?{animate:!0}:t);var e=this.getSize();this._sizeChanged=!0,this._lastCenter=null;var r=this.getSize(),o=e.divideBy(2).round(),s=r.divideBy(2).round(),a=o.subtract(s);return a.x||a.y?(t.animate&&t.pan?this.panBy(a):(t.pan&&this._rawPanBy(a),this.fire("move"),t.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(i(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:e,newSize:r})):this},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire("viewreset"),this._stop()},locate:function(t){if(t=this._locateOptions=n({timeout:1e4,watch:!1},t),!("geolocation"in navigator))return this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this;var e=i(this._handleGeolocationResponse,this),r=i(this._handleGeolocationError,this);return t.watch?this._locationWatchId=navigator.geolocation.watchPosition(e,r,t):navigator.geolocation.getCurrentPosition(e,r,t),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(t){if(this._container._leaflet_id){var e=t.code,n=t.message||(1===e?"permission denied":2===e?"position unavailable":"timeout");this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:e,message:"Geolocation error: "+n+"."})}},_handleGeolocationResponse:function(t){if(this._container._leaflet_id){var e=t.coords.latitude,n=t.coords.longitude,r=new U(e,n),i=r.toBounds(2*t.coords.accuracy),o=this._locateOptions;if(o.setView){var s=this.getBoundsZoom(i);this.setView(r,o.maxZoom?Math.min(s,o.maxZoom):s)}var a={latlng:r,bounds:i,timestamp:t.timestamp};for(var l in t.coords)"number"===typeof t.coords[l]&&(a[l]=t.coords[l]);this.fire("locationfound",a)}},addHandler:function(t,e){if(!e)return this;var n=this[t]=new e(this);return this._handlers.push(n),this.options[t]&&n.enable(),this},remove:function(){if(this._initEvents(!0),this.options.maxBounds&&this.off("moveend",this._panInsideMaxBounds),this._containerId!==this._container._leaflet_id)throw new Error("Map container is being reused by another instance");try{delete this._container._leaflet_id,delete this._containerId}catch(e){this._container._leaflet_id=void 0,this._containerId=void 0}var t;for(t in void 0!==this._locationWatchId&&this.stopLocate(),this._stop(),pe(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._resizeRequest&&(A(this._resizeRequest),this._resizeRequest=null),this._clearHandlers(),this._loaded&&this.fire("unload"),this._layers)this._layers[t].remove();for(t in this._panes)pe(this._panes[t]);return this._layers=[],this._panes=[],delete this._mapPane,delete this._renderer,this},createPane:function(t,e){var n="leaflet-pane"+(t?" leaflet-"+t.replace("Pane","")+"-pane":""),r=de("div",n,e||this._mapPane);return t&&(this._panes[t]=r),r},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter.clone():this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var t=this.getPixelBounds(),e=this.unproject(t.getBottomLeft()),n=this.unproject(t.getTopRight());return new D(e,n)},getMinZoom:function(){return void 0===this.options.minZoom?this._layersMinZoom||0:this.options.minZoom},getMaxZoom:function(){return void 0===this.options.maxZoom?void 0===this._layersMaxZoom?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(t,e,n){t=F(t),n=j(n||[0,0]);var r=this.getZoom()||0,i=this.getMinZoom(),o=this.getMaxZoom(),s=t.getNorthWest(),a=t.getSouthEast(),l=this.getSize().subtract(n),u=B(this.project(a,r),this.project(s,r)).getSize(),h=Nt.any3d?this.options.zoomSnap:1,c=l.x/u.x,f=l.y/u.y,d=e?Math.max(c,f):Math.min(c,f);return r=this.getScaleZoom(d,r),h&&(r=Math.round(r/(h/100))*(h/100),r=e?Math.ceil(r/h)*h:Math.floor(r/h)*h),Math.max(i,Math.min(o,r))},getSize:function(){return this._size&&!this._sizeChanged||(this._size=new I(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(t,e){var n=this._getTopLeftPoint(t,e);return new N(n,n.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._pixelOrigin},getPixelWorldBounds:function(t){return this.options.crs.getProjectedBounds(void 0===t?this.getZoom():t)},getPane:function(t){return"string"===typeof t?this._panes[t]:t},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(t,e){var n=this.options.crs;return e=void 0===e?this._zoom:e,n.scale(t)/n.scale(e)},getScaleZoom:function(t,e){var n=this.options.crs;e=void 0===e?this._zoom:e;var r=n.zoom(t*n.scale(e));return isNaN(r)?1/0:r},project:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.latLngToPoint(G(t),e)},unproject:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.pointToLatLng(j(t),e)},layerPointToLatLng:function(t){var e=j(t).add(this.getPixelOrigin());return this.unproject(e)},latLngToLayerPoint:function(t){var e=this.project(G(t))._round();return e._subtract(this.getPixelOrigin())},wrapLatLng:function(t){return this.options.crs.wrapLatLng(G(t))},wrapLatLngBounds:function(t){return this.options.crs.wrapLatLngBounds(F(t))},distance:function(t,e){return this.options.crs.distance(G(t),G(e))},containerPointToLayerPoint:function(t){return j(t).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(t){return j(t).add(this._getMapPanePos())},containerPointToLatLng:function(t){var e=this.containerPointToLayerPoint(j(t));return this.layerPointToLatLng(e)},latLngToContainerPoint:function(t){return this.layerPointToContainerPoint(this.latLngToLayerPoint(G(t)))},mouseEventToContainerPoint:function(t){return Ye(t,this._container)},mouseEventToLayerPoint:function(t){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t))},mouseEventToLatLng:function(t){return this.layerPointToLatLng(this.mouseEventToLayerPoint(t))},_initContainer:function(t){var e=this._container=ce(t);if(!e)throw new Error("Map container not found.");if(e._leaflet_id)throw new Error("Map container is already initialized.");Be(e,"scroll",this._onScroll,this),this._containerId=s(e)},_initLayout:function(){var t=this._container;this._fadeAnimated=this.options.fadeAnimation&&Nt.any3d,ve(t,"leaflet-container"+(Nt.touch?" leaflet-touch":"")+(Nt.retina?" leaflet-retina":"")+(Nt.ielt9?" leaflet-oldie":"")+(Nt.safari?" leaflet-safari":"")+(this._fadeAnimated?" leaflet-fade-anim":""));var e=fe(t,"position");"absolute"!==e&&"relative"!==e&&"fixed"!==e&&"sticky"!==e&&(t.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var t=this._panes={};this._paneRenderers={},this._mapPane=this.createPane("mapPane",this._container),Ee(this._mapPane,new I(0,0)),this.createPane("tilePane"),this.createPane("overlayPane"),this.createPane("shadowPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane"),this.options.markerZoomAnimation||(ve(t.markerPane,"leaflet-zoom-hide"),ve(t.shadowPane,"leaflet-zoom-hide"))},_resetView:function(t,e,n){Ee(this._mapPane,new I(0,0));var r=!this._loaded;this._loaded=!0,e=this._limitZoom(e),this.fire("viewprereset");var i=this._zoom!==e;this._moveStart(i,n)._move(t,e)._moveEnd(i),this.fire("viewreset"),r&&this.fire("load")},_moveStart:function(t,e){return t&&this.fire("zoomstart"),e||this.fire("movestart"),this},_move:function(t,e,n,r){void 0===e&&(e=this._zoom);var i=this._zoom!==e;return this._zoom=e,this._lastCenter=t,this._pixelOrigin=this._getNewPixelOrigin(t),r?n&&n.pinch&&this.fire("zoom",n):((i||n&&n.pinch)&&this.fire("zoom",n),this.fire("move",n)),this},_moveEnd:function(t){return t&&this.fire("zoomend"),this.fire("moveend")},_stop:function(){return A(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(t){Ee(this._mapPane,this._getMapPanePos().subtract(t))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_panInsideMaxBounds:function(){this._enforcingBounds||this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(t){this._targets={},this._targets[s(this._container)]=this;var e=t?Fe:Be;e(this._container,"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress keydown keyup",this._handleDOMEvent,this),this.options.trackResize&&e(window,"resize",this._onResize,this),Nt.any3d&&this.options.transform3DLimit&&(t?this.off:this.on).call(this,"moveend",this._onMoveEnd)},_onResize:function(){A(this._resizeRequest),this._resizeRequest=M((function(){this.invalidateSize({debounceMoveend:!0})}),this)},_onScroll:function(){this._container.scrollTop=0,this._container.scrollLeft=0},_onMoveEnd:function(){var t=this._getMapPanePos();Math.max(Math.abs(t.x),Math.abs(t.y))>=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(t,e){var n,r=[],i="mouseout"===e||"mouseover"===e,o=t.target||t.srcElement,a=!1;while(o){if(n=this._targets[s(o)],n&&("click"===e||"preclick"===e)&&this._draggableMoved(n)){a=!0;break}if(n&&n.listens(e,!0)){if(i&&!$e(o,t))break;if(r.push(n),i)break}if(o===this._container)break;o=o.parentNode}return r.length||a||i||!this.listens(e,!0)||(r=[this]),r},_isClickDisabled:function(t){while(t&&t!==this._container){if(t["_leaflet_disable_click"])return!0;t=t.parentNode}},_handleDOMEvent:function(t){var e=t.target||t.srcElement;if(!(!this._loaded||e["_leaflet_disable_events"]||"click"===t.type&&this._isClickDisabled(e))){var n=t.type;"mousedown"===n&&Le(e),this._fireDOMEvent(t,n)}},_mouseEvents:["click","dblclick","mouseover","mouseout","contextmenu"],_fireDOMEvent:function(t,e,r){if("click"===t.type){var i=n({},t);i.type="preclick",this._fireDOMEvent(i,i.type,r)}var o=this._findEventTargets(t,e);if(r){for(var s=[],a=0;a0?Math.round(t-e)/2:Math.max(0,Math.ceil(t))-Math.max(0,Math.floor(e))},_limitZoom:function(t){var e=this.getMinZoom(),n=this.getMaxZoom(),r=Nt.any3d?this.options.zoomSnap:1;return r&&(t=Math.round(t/r)*r),Math.max(e,Math.min(n,t))},_onPanTransitionStep:function(){this.fire("move")},_onPanTransitionEnd:function(){be(this._mapPane,"leaflet-pan-anim"),this.fire("moveend")},_tryAnimatedPan:function(t,e){var n=this._getCenterOffset(t)._trunc();return!(!0!==(e&&e.animate)&&!this.getSize().contains(n))&&(this.panBy(n,e),!0)},_createAnimProxy:function(){var t=this._proxy=de("div","leaflet-proxy leaflet-zoom-animated");this._panes.mapPane.appendChild(t),this.on("zoomanim",(function(t){var e=le,n=this._proxy.style[e];Ae(this._proxy,this.project(t.center,t.zoom),this.getZoomScale(t.zoom,1)),n===this._proxy.style[e]&&this._animatingZoom&&this._onZoomTransitionEnd()}),this),this.on("load moveend",this._animMoveEnd,this),this._on("unload",this._destroyAnimProxy,this)},_destroyAnimProxy:function(){pe(this._proxy),this.off("load moveend",this._animMoveEnd,this),delete this._proxy},_animMoveEnd:function(){var t=this.getCenter(),e=this.getZoom();Ae(this._proxy,this.project(t,e),this.getZoomScale(e,1))},_catchTransitionEnd:function(t){this._animatingZoom&&t.propertyName.indexOf("transform")>=0&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(t,e,n){if(this._animatingZoom)return!0;if(n=n||{},!this._zoomAnimated||!1===n.animate||this._nothingToAnimate()||Math.abs(e-this._zoom)>this.options.zoomAnimationThreshold)return!1;var r=this.getZoomScale(e),i=this._getCenterOffset(t)._divideBy(1-1/r);return!(!0!==n.animate&&!this.getSize().contains(i))&&(M((function(){this._moveStart(!0,n.noMoveStart||!1)._animateZoom(t,e,!0)}),this),!0)},_animateZoom:function(t,e,n,r){this._mapPane&&(n&&(this._animatingZoom=!0,this._animateToCenter=t,this._animateToZoom=e,ve(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:t,zoom:e,noUpdate:r}),this._tempFireZoomEvent||(this._tempFireZoomEvent=this._zoom!==this._animateToZoom),this._move(this._animateToCenter,this._animateToZoom,void 0,!0),setTimeout(i(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._mapPane&&be(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom,void 0,!0),this._tempFireZoomEvent&&this.fire("zoom"),delete this._tempFireZoomEvent,this.fire("move"),this._moveEnd(!0))}});function rn(t,e){return new nn(t,e)}var on=C.extend({options:{position:"topright"},initialize:function(t){d(this,t)},getPosition:function(){return this.options.position},setPosition:function(t){var e=this._map;return e&&e.removeControl(this),this.options.position=t,e&&e.addControl(this),this},getContainer:function(){return this._container},addTo:function(t){this.remove(),this._map=t;var e=this._container=this.onAdd(t),n=this.getPosition(),r=t._controlCorners[n];return ve(e,"leaflet-control"),-1!==n.indexOf("bottom")?r.insertBefore(e,r.firstChild):r.appendChild(e),this._map.on("unload",this.remove,this),this},remove:function(){return this._map?(pe(this._container),this.onRemove&&this.onRemove(this._map),this._map.off("unload",this.remove,this),this._map=null,this):this},_refocusOnMap:function(t){this._map&&t&&t.screenX>0&&t.screenY>0&&this._map.getContainer().focus()}}),sn=function(t){return new on(t)};nn.include({addControl:function(t){return t.addTo(this),this},removeControl:function(t){return t.remove(),this},_initControlPos:function(){var t=this._controlCorners={},e="leaflet-",n=this._controlContainer=de("div",e+"control-container",this._container);function r(r,i){var o=e+r+" "+e+i;t[r+i]=de("div",o,n)}r("top","left"),r("top","right"),r("bottom","left"),r("bottom","right")},_clearControlPos:function(){for(var t in this._controlCorners)pe(this._controlCorners[t]);pe(this._controlContainer),delete this._controlCorners,delete this._controlContainer}});var an=on.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0,hideSingleBase:!1,sortLayers:!1,sortFunction:function(t,e,n,r){return n1,this._baseLayersList.style.display=t?"":"none"),this._separator.style.display=e&&t?"":"none",this},_onLayerChange:function(t){this._handlingClick||this._update();var e=this._getLayer(s(t.target)),n=e.overlay?"add"===t.type?"overlayadd":"overlayremove":"add"===t.type?"baselayerchange":null;n&&this._map.fire(n,e)},_createRadioElement:function(t,e){var n='",r=document.createElement("div");return r.innerHTML=n,r.firstChild},_addItem:function(t){var e,n=document.createElement("label"),r=this._map.hasLayer(t.layer);t.overlay?(e=document.createElement("input"),e.type="checkbox",e.className="leaflet-control-layers-selector",e.defaultChecked=r):e=this._createRadioElement("leaflet-base-layers_"+s(this),r),this._layerControlInputs.push(e),e.layerId=s(t.layer),Be(e,"click",this._onInputClick,this);var i=document.createElement("span");i.innerHTML=" "+t.name;var o=document.createElement("span");n.appendChild(o),o.appendChild(e),o.appendChild(i);var a=t.overlay?this._overlaysList:this._baseLayersList;return a.appendChild(n),this._checkDisabledLayers(),n},_onInputClick:function(){if(!this._preventClick){var t,e,n=this._layerControlInputs,r=[],i=[];this._handlingClick=!0;for(var o=n.length-1;o>=0;o--)t=n[o],e=this._getLayer(t.layerId).layer,t.checked?r.push(e):t.checked||i.push(e);for(o=0;o=0;i--)t=n[i],e=this._getLayer(t.layerId).layer,t.disabled=void 0!==e.options.minZoom&&re.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this},_expandSafely:function(){var t=this._section;this._preventClick=!0,Be(t,"click",Ve),this.expand();var e=this;setTimeout((function(){Fe(t,"click",Ve),e._preventClick=!1}))}}),ln=function(t,e,n){return new an(t,e,n)},un=on.extend({options:{position:"topleft",zoomInText:'',zoomInTitle:"Zoom in",zoomOutText:'',zoomOutTitle:"Zoom out"},onAdd:function(t){var e="leaflet-control-zoom",n=de("div",e+" leaflet-bar"),r=this.options;return this._zoomInButton=this._createButton(r.zoomInText,r.zoomInTitle,e+"-in",n,this._zoomIn),this._zoomOutButton=this._createButton(r.zoomOutText,r.zoomOutTitle,e+"-out",n,this._zoomOut),this._updateDisabled(),t.on("zoomend zoomlevelschange",this._updateDisabled,this),n},onRemove:function(t){t.off("zoomend zoomlevelschange",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(t){!this._disabled&&this._map._zoomthis._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(t.shiftKey?3:1))},_createButton:function(t,e,n,r,i){var o=de("a",n,r);return o.innerHTML=t,o.href="#",o.title=e,o.setAttribute("role","button"),o.setAttribute("aria-label",e),We(o),Be(o,"click",Qe),Be(o,"click",i,this),Be(o,"click",this._refocusOnMap,this),o},_updateDisabled:function(){var t=this._map,e="leaflet-disabled";be(this._zoomInButton,e),be(this._zoomOutButton,e),this._zoomInButton.setAttribute("aria-disabled","false"),this._zoomOutButton.setAttribute("aria-disabled","false"),(this._disabled||t._zoom===t.getMinZoom())&&(ve(this._zoomOutButton,e),this._zoomOutButton.setAttribute("aria-disabled","true")),(this._disabled||t._zoom===t.getMaxZoom())&&(ve(this._zoomInButton,e),this._zoomInButton.setAttribute("aria-disabled","true"))}});nn.mergeOptions({zoomControl:!0}),nn.addInitHook((function(){this.options.zoomControl&&(this.zoomControl=new un,this.addControl(this.zoomControl))}));var hn=function(t){return new un(t)},cn=on.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(t){var e="leaflet-control-scale",n=de("div",e),r=this.options;return this._addScales(r,e+"-line",n),t.on(r.updateWhenIdle?"moveend":"move",this._update,this),t.whenReady(this._update,this),n},onRemove:function(t){t.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(t,e,n){t.metric&&(this._mScale=de("div",e,n)),t.imperial&&(this._iScale=de("div",e,n))},_update:function(){var t=this._map,e=t.getSize().y/2,n=t.distance(t.containerPointToLatLng([0,e]),t.containerPointToLatLng([this.options.maxWidth,e]));this._updateScales(n)},_updateScales:function(t){this.options.metric&&t&&this._updateMetric(t),this.options.imperial&&t&&this._updateImperial(t)},_updateMetric:function(t){var e=this._getRoundNum(t),n=e<1e3?e+" m":e/1e3+" km";this._updateScale(this._mScale,n,e/t)},_updateImperial:function(t){var e,n,r,i=3.2808399*t;i>5280?(e=i/5280,n=this._getRoundNum(e),this._updateScale(this._iScale,n+" mi",n/e)):(r=this._getRoundNum(i),this._updateScale(this._iScale,r+" ft",r/i))},_updateScale:function(t,e,n){t.style.width=Math.round(this.options.maxWidth*n)+"px",t.innerHTML=e},_getRoundNum:function(t){var e=Math.pow(10,(Math.floor(t)+"").length-1),n=t/e;return n=n>=10?10:n>=5?5:n>=3?3:n>=2?2:1,e*n}}),fn=function(t){return new cn(t)},dn='',pn=on.extend({options:{position:"bottomright",prefix:''+(Nt.inlineSvg?dn+" ":"")+"Leaflet"},initialize:function(t){d(this,t),this._attributions={}},onAdd:function(t){for(var e in t.attributionControl=this,this._container=de("div","leaflet-control-attribution"),We(this._container),t._layers)t._layers[e].getAttribution&&this.addAttribution(t._layers[e].getAttribution());return this._update(),t.on("layeradd",this._addAttribution,this),this._container},onRemove:function(t){t.off("layeradd",this._addAttribution,this)},_addAttribution:function(t){t.layer.getAttribution&&(this.addAttribution(t.layer.getAttribution()),t.layer.once("remove",(function(){this.removeAttribution(t.layer.getAttribution())}),this))},setPrefix:function(t){return this.options.prefix=t,this._update(),this},addAttribution:function(t){return t?(this._attributions[t]||(this._attributions[t]=0),this._attributions[t]++,this._update(),this):this},removeAttribution:function(t){return t?(this._attributions[t]&&(this._attributions[t]--,this._update()),this):this},_update:function(){if(this._map){var t=[];for(var e in this._attributions)this._attributions[e]&&t.push(e);var n=[];this.options.prefix&&n.push(this.options.prefix),t.length&&n.push(t.join(", ")),this._container.innerHTML=n.join(' ')}}});nn.mergeOptions({attributionControl:!0}),nn.addInitHook((function(){this.options.attributionControl&&(new pn).addTo(this)}));var mn=function(t){return new pn(t)};on.Layers=an,on.Zoom=un,on.Scale=cn,on.Attribution=pn,sn.layers=ln,sn.zoom=hn,sn.scale=fn,sn.attribution=mn;var gn=C.extend({initialize:function(t){this._map=t},enable:function(){return this._enabled||(this._enabled=!0,this.addHooks()),this},disable:function(){return this._enabled?(this._enabled=!1,this.removeHooks(),this):this},enabled:function(){return!!this._enabled}});gn.addTo=function(t,e){return t.addHandler(e,this),this};var yn={Events:O},_n=Nt.touch?"touchstart mousedown":"mousedown",vn=P.extend({options:{clickTolerance:3},initialize:function(t,e,n,r){d(this,r),this._element=t,this._dragStartTarget=e||t,this._preventOutline=n},enable:function(){this._enabled||(Be(this._dragStartTarget,_n,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(vn._dragging===this&&this.finishDrag(!0),Fe(this._dragStartTarget,_n,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(t){if(this._enabled&&(this._moved=!1,!_e(this._element,"leaflet-zoom-anim")))if(t.touches&&1!==t.touches.length)vn._dragging===this&&this.finishDrag();else if(!(vn._dragging||t.shiftKey||1!==t.which&&1!==t.button&&!t.touches)&&(vn._dragging=this,this._preventOutline&&Le(this._element),Oe(),re(),!this._moving)){this.fire("down");var e=t.touches?t.touches[0]:t,n=Re(this._element);this._startPoint=new I(e.clientX,e.clientY),this._startPos=Ce(this._element),this._parentScale=je(n);var r="mousedown"===t.type;Be(document,r?"mousemove":"touchmove",this._onMove,this),Be(document,r?"mouseup":"touchend touchcancel",this._onUp,this)}},_onMove:function(t){if(this._enabled)if(t.touches&&t.touches.length>1)this._moved=!0;else{var e=t.touches&&1===t.touches.length?t.touches[0]:t,n=new I(e.clientX,e.clientY)._subtract(this._startPoint);(n.x||n.y)&&(Math.abs(n.x)+Math.abs(n.y)l&&(o=s,l=a);l>n&&(e[o]=1,Tn(t,e,n,r,o),Tn(t,e,n,o,i))}function On(t,e){for(var n=[t[0]],r=1,i=0,o=t.length;re&&(n.push(t[r]),i=r);return ie.max.x&&(n|=2),t.ye.max.y&&(n|=8),n}function Rn(t,e){var n=e.x-t.x,r=e.y-t.y;return n*n+r*r}function jn(t,e,n,r){var i,o=e.x,s=e.y,a=n.x-o,l=n.y-s,u=a*a+l*l;return u>0&&(i=((t.x-o)*a+(t.y-s)*l)/u,i>1?(o=n.x,s=n.y):i>0&&(o+=a*i,s+=l*i)),a=t.x-o,l=t.y-s,r?a*a+l*l:new I(o,s)}function Nn(t){return!y(t[0])||"object"!==typeof t[0][0]&&"undefined"!==typeof t[0][0]}function Bn(t){return console.warn("Deprecated use of _flat, please use L.LineUtil.isFlat instead."),Nn(t)}function Dn(t,e){var n,r,i,o,s,a,l,u;if(!t||0===t.length)throw new Error("latlngs not passed");Nn(t)||(console.warn("latlngs are not flat! Only the first ring will be used"),t=t[0]);var h=G([0,0]),c=F(t),f=c.getNorthWest().distanceTo(c.getSouthWest())*c.getNorthEast().distanceTo(c.getNorthWest());f<1700&&(h=xn(t));var d=t.length,p=[];for(n=0;nr){l=(o-r)/i,u=[a.x-l*(a.x-s.x),a.y-l*(a.y-s.y)];break}var g=e.unproject(j(u));return G([g.lat+h.lat,g.lng+h.lng])}var Fn={__proto__:null,simplify:Mn,pointToSegmentDistance:An,closestPointOnSegment:En,clipSegment:Pn,_getEdgeIntersection:Ln,_getBitCode:In,_sqClosestPointOnSegment:jn,isFlat:Nn,_flat:Bn,polylineCenter:Dn},Un={project:function(t){return new I(t.lng,t.lat)},unproject:function(t){return new U(t.y,t.x)},bounds:new N([-180,-90],[180,90])},Gn={R:6378137,R_MINOR:6356752.314245179,bounds:new N([-20037508.34279,-15496570.73972],[20037508.34279,18764656.23138]),project:function(t){var e=Math.PI/180,n=this.R,r=t.lat*e,i=this.R_MINOR/n,o=Math.sqrt(1-i*i),s=o*Math.sin(r),a=Math.tan(Math.PI/4-r/2)/Math.pow((1-s)/(1+s),o/2);return r=-n*Math.log(Math.max(a,1e-10)),new I(t.lng*e*n,r)},unproject:function(t){for(var e,n=180/Math.PI,r=this.R,i=this.R_MINOR/r,o=Math.sqrt(1-i*i),s=Math.exp(-t.y/r),a=Math.PI/2-2*Math.atan(s),l=0,u=.1;l<15&&Math.abs(u)>1e-7;l++)e=o*Math.sin(a),e=Math.pow((1-e)/(1+e),o/2),u=Math.PI/2-2*Math.atan(s*e)-a,a+=u;return new U(a*n,t.x*n/r)}},zn={__proto__:null,LonLat:Un,Mercator:Gn,SphericalMercator:Z},Hn=n({},H,{code:"EPSG:3395",projection:Gn,transformation:function(){var t=.5/(Math.PI*Gn.R);return V(t,.5,-t,.5)}()}),qn=n({},H,{code:"EPSG:4326",projection:Un,transformation:V(1/180,1,-1/180,.5)}),Zn=n({},z,{projection:Un,transformation:V(1,0,-1,0),scale:function(t){return Math.pow(2,t)},zoom:function(t){return Math.log(t)/Math.LN2},distance:function(t,e){var n=e.lng-t.lng,r=e.lat-t.lat;return Math.sqrt(n*n+r*r)},infinite:!0});z.Earth=H,z.EPSG3395=Hn,z.EPSG3857=Q,z.EPSG900913=K,z.EPSG4326=qn,z.Simple=Zn;var Wn=P.extend({options:{pane:"overlayPane",attribution:null,bubblingMouseEvents:!0},addTo:function(t){return t.addLayer(this),this},remove:function(){return this.removeFrom(this._map||this._mapToAdd)},removeFrom:function(t){return t&&t.removeLayer(this),this},getPane:function(t){return this._map.getPane(t?this.options[t]||t:this.options.pane)},addInteractiveTarget:function(t){return this._map._targets[s(t)]=this,this},removeInteractiveTarget:function(t){return delete this._map._targets[s(t)],this},getAttribution:function(){return this.options.attribution},_layerAdd:function(t){var e=t.target;if(e.hasLayer(this)){if(this._map=e,this._zoomAnimated=e._zoomAnimated,this.getEvents){var n=this.getEvents();e.on(n,this),this.once("remove",(function(){e.off(n,this)}),this)}this.onAdd(e),this.fire("add"),e.fire("layeradd",{layer:this})}}});nn.include({addLayer:function(t){if(!t._layerAdd)throw new Error("The provided object is not a Layer.");var e=s(t);return this._layers[e]||(this._layers[e]=t,t._mapToAdd=this,t.beforeAdd&&t.beforeAdd(this),this.whenReady(t._layerAdd,t)),this},removeLayer:function(t){var e=s(t);return this._layers[e]?(this._loaded&&t.onRemove(this),delete this._layers[e],this._loaded&&(this.fire("layerremove",{layer:t}),t.fire("remove")),t._map=t._mapToAdd=null,this):this},hasLayer:function(t){return s(t)in this._layers},eachLayer:function(t,e){for(var n in this._layers)t.call(e,this._layers[n]);return this},_addLayers:function(t){t=t?y(t)?t:[t]:[];for(var e=0,n=t.length;ethis._layersMaxZoom&&this.setZoom(this._layersMaxZoom),void 0===this.options.minZoom&&this._layersMinZoom&&this.getZoom()=2&&e[0]instanceof U&&e[0].equals(e[n-1])&&e.pop(),e},_setLatLngs:function(t){lr.prototype._setLatLngs.call(this,t),Nn(this._latlngs)&&(this._latlngs=[this._latlngs])},_defaultShape:function(){return Nn(this._latlngs[0])?this._latlngs[0]:this._latlngs[0][0]},_clipPoints:function(){var t=this._renderer._bounds,e=this.options.weight,n=new I(e,e);if(t=new N(t.min.subtract(n),t.max.add(n)),this._parts=[],this._pxBounds&&this._pxBounds.intersects(t))if(this.options.noClip)this._parts=this._rings;else for(var r,i=0,o=this._rings.length;it.y!==r.y>t.y&&t.x<(r.x-n.x)*(t.y-n.y)/(r.y-n.y)+n.x&&(u=!u);return u||lr.prototype._containsPoint.call(this,t,!0)}});function cr(t,e){return new hr(t,e)}var fr=Kn.extend({initialize:function(t,e){d(this,e),this._layers={},t&&this.addData(t)},addData:function(t){var e,n,r,i=y(t)?t:t.features;if(i){for(e=0,n=i.length;e0&&i.push(i[0].slice()),i}function vr(t,e){return t.feature?n({},t.feature,{geometry:e}):br(e)}function br(t){return"Feature"===t.type||"FeatureCollection"===t.type?t:{type:"Feature",properties:{},geometry:t}}var wr={toGeoJSON:function(t){return vr(this,{type:"Point",coordinates:yr(this.getLatLng(),t)})}};function xr(t,e){return new fr(t,e)}er.include(wr),sr.include(wr),ir.include(wr),lr.include({toGeoJSON:function(t){var e=!Nn(this._latlngs),n=_r(this._latlngs,e?1:0,!1,t);return vr(this,{type:(e?"Multi":"")+"LineString",coordinates:n})}}),hr.include({toGeoJSON:function(t){var e=!Nn(this._latlngs),n=e&&!Nn(this._latlngs[0]),r=_r(this._latlngs,n?2:e?1:0,!0,t);return e||(r=[r]),vr(this,{type:(n?"Multi":"")+"Polygon",coordinates:r})}}),Vn.include({toMultiPoint:function(t){var e=[];return this.eachLayer((function(n){e.push(n.toGeoJSON(t).geometry.coordinates)})),vr(this,{type:"MultiPoint",coordinates:e})},toGeoJSON:function(t){var e=this.feature&&this.feature.geometry&&this.feature.geometry.type;if("MultiPoint"===e)return this.toMultiPoint(t);var n="GeometryCollection"===e,r=[];return this.eachLayer((function(e){if(e.toGeoJSON){var i=e.toGeoJSON(t);if(n)r.push(i.geometry);else{var o=br(i);"FeatureCollection"===o.type?r.push.apply(r,o.features):r.push(o)}}})),n?vr(this,{geometries:r,type:"GeometryCollection"}):{type:"FeatureCollection",features:r}}});var kr=xr,Sr=Wn.extend({options:{opacity:1,alt:"",interactive:!1,crossOrigin:!1,errorOverlayUrl:"",zIndex:1,className:""},initialize:function(t,e,n){this._url=t,this._bounds=F(e),d(this,n)},onAdd:function(){this._image||(this._initImage(),this.options.opacity<1&&this._updateOpacity()),this.options.interactive&&(ve(this._image,"leaflet-interactive"),this.addInteractiveTarget(this._image)),this.getPane().appendChild(this._image),this._reset()},onRemove:function(){pe(this._image),this.options.interactive&&this.removeInteractiveTarget(this._image)},setOpacity:function(t){return this.options.opacity=t,this._image&&this._updateOpacity(),this},setStyle:function(t){return t.opacity&&this.setOpacity(t.opacity),this},bringToFront:function(){return this._map&&ge(this._image),this},bringToBack:function(){return this._map&&ye(this._image),this},setUrl:function(t){return this._url=t,this._image&&(this._image.src=t),this},setBounds:function(t){return this._bounds=F(t),this._map&&this._reset(),this},getEvents:function(){var t={zoom:this._reset,viewreset:this._reset};return this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},setZIndex:function(t){return this.options.zIndex=t,this._updateZIndex(),this},getBounds:function(){return this._bounds},getElement:function(){return this._image},_initImage:function(){var t="IMG"===this._url.tagName,e=this._image=t?this._url:de("img");ve(e,"leaflet-image-layer"),this._zoomAnimated&&ve(e,"leaflet-zoom-animated"),this.options.className&&ve(e,this.options.className),e.onselectstart=u,e.onmousemove=u,e.onload=i(this.fire,this,"load"),e.onerror=i(this._overlayOnError,this,"error"),(this.options.crossOrigin||""===this.options.crossOrigin)&&(e.crossOrigin=!0===this.options.crossOrigin?"":this.options.crossOrigin),this.options.zIndex&&this._updateZIndex(),t?this._url=e.src:(e.src=this._url,e.alt=this.options.alt)},_animateZoom:function(t){var e=this._map.getZoomScale(t.zoom),n=this._map._latLngBoundsToNewLayerBounds(this._bounds,t.zoom,t.center).min;Ae(this._image,n,e)},_reset:function(){var t=this._image,e=new N(this._map.latLngToLayerPoint(this._bounds.getNorthWest()),this._map.latLngToLayerPoint(this._bounds.getSouthEast())),n=e.getSize();Ee(t,e.min),t.style.width=n.x+"px",t.style.height=n.y+"px"},_updateOpacity:function(){ke(this._image,this.options.opacity)},_updateZIndex:function(){this._image&&void 0!==this.options.zIndex&&null!==this.options.zIndex&&(this._image.style.zIndex=this.options.zIndex)},_overlayOnError:function(){this.fire("error");var t=this.options.errorOverlayUrl;t&&this._url!==t&&(this._url=t,this._image.src=t)},getCenter:function(){return this._bounds.getCenter()}}),Mr=function(t,e,n){return new Sr(t,e,n)},Ar=Sr.extend({options:{autoplay:!0,loop:!0,keepAspectRatio:!0,muted:!1,playsInline:!0},_initImage:function(){var t="VIDEO"===this._url.tagName,e=this._image=t?this._url:de("video");if(ve(e,"leaflet-image-layer"),this._zoomAnimated&&ve(e,"leaflet-zoom-animated"),this.options.className&&ve(e,this.options.className),e.onselectstart=u,e.onmousemove=u,e.onloadeddata=i(this.fire,this,"load"),t){for(var n=e.getElementsByTagName("source"),r=[],o=0;o0?r:[e.src]}else{y(this._url)||(this._url=[this._url]),!this.options.keepAspectRatio&&Object.prototype.hasOwnProperty.call(e.style,"objectFit")&&(e.style["objectFit"]="fill"),e.autoplay=!!this.options.autoplay,e.loop=!!this.options.loop,e.muted=!!this.options.muted,e.playsInline=!!this.options.playsInline;for(var s=0;si?(e.height=i+"px",ve(t,o)):be(t,o),this._containerWidth=this._container.offsetWidth},_animateZoom:function(t){var e=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center),n=this._getAnchor();Ee(this._container,e.add(n))},_adjustPan:function(){if(this.options.autoPan)if(this._map._panAnim&&this._map._panAnim.stop(),this._autopanning)this._autopanning=!1;else{var t=this._map,e=parseInt(fe(this._container,"marginBottom"),10)||0,n=this._container.offsetHeight+e,r=this._containerWidth,i=new I(this._containerLeft,-n-this._containerBottom);i._add(Ce(this._container));var o=t.layerPointToContainerPoint(i),s=j(this.options.autoPanPadding),a=j(this.options.autoPanPaddingTopLeft||s),l=j(this.options.autoPanPaddingBottomRight||s),u=t.getSize(),h=0,c=0;o.x+r+l.x>u.x&&(h=o.x+r-u.x+l.x),o.x-h-a.x<0&&(h=o.x-a.x),o.y+n+l.y>u.y&&(c=o.y+n-u.y+l.y),o.y-c-a.y<0&&(c=o.y-a.y),(h||c)&&(this.options.keepInView&&(this._autopanning=!0),t.fire("autopanstart").panBy([h,c]))}},_getAnchor:function(){return j(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}}),Lr=function(t,e){return new Pr(t,e)};nn.mergeOptions({closePopupOnClick:!0}),nn.include({openPopup:function(t,e,n){return this._initOverlay(Pr,t,e,n).openOn(this),this},closePopup:function(t){return t=arguments.length?t:this._popup,t&&t.close(),this}}),Wn.include({bindPopup:function(t,e){return this._popup=this._initOverlay(Pr,this._popup,t,e),this._popupHandlersAdded||(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(t){return this._popup&&(this instanceof Kn||(this._popup._source=this),this._popup._prepareOpen(t||this._latlng)&&this._popup.openOn(this._map)),this},closePopup:function(){return this._popup&&this._popup.close(),this},togglePopup:function(){return this._popup&&this._popup.toggle(this),this},isPopupOpen:function(){return!!this._popup&&this._popup.isOpen()},setPopupContent:function(t){return this._popup&&this._popup.setContent(t),this},getPopup:function(){return this._popup},_openPopup:function(t){if(this._popup&&this._map){Qe(t);var e=t.layer||t.target;this._popup._source!==e||e instanceof rr?(this._popup._source=e,this.openPopup(t.latlng)):this._map.hasLayer(this._popup)?this.closePopup():this.openPopup(t.latlng)}},_movePopup:function(t){this._popup.setLatLng(t.latlng)},_onKeyPress:function(t){13===t.originalEvent.keyCode&&this._openPopup(t)}});var Ir=Or.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,opacity:.9},onAdd:function(t){Or.prototype.onAdd.call(this,t),this.setOpacity(this.options.opacity),t.fire("tooltipopen",{tooltip:this}),this._source&&(this.addEventParent(this._source),this._source.fire("tooltipopen",{tooltip:this},!0))},onRemove:function(t){Or.prototype.onRemove.call(this,t),t.fire("tooltipclose",{tooltip:this}),this._source&&(this.removeEventParent(this._source),this._source.fire("tooltipclose",{tooltip:this},!0))},getEvents:function(){var t=Or.prototype.getEvents.call(this);return this.options.permanent||(t.preclick=this.close),t},_initLayout:function(){var t="leaflet-tooltip",e=t+" "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide");this._contentNode=this._container=de("div",e),this._container.setAttribute("role","tooltip"),this._container.setAttribute("id","leaflet-tooltip-"+s(this))},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(t){var e,n,r=this._map,i=this._container,o=r.latLngToContainerPoint(r.getCenter()),s=r.layerPointToContainerPoint(t),a=this.options.direction,l=i.offsetWidth,u=i.offsetHeight,h=j(this.options.offset),c=this._getAnchor();"top"===a?(e=l/2,n=u):"bottom"===a?(e=l/2,n=0):"center"===a?(e=l/2,n=u/2):"right"===a?(e=0,n=u/2):"left"===a?(e=l,n=u/2):s.xthis.options.maxZoom||nr&&this._retainParent(i,o,s,r))},_retainChildren:function(t,e,n,r){for(var i=2*t;i<2*t+2;i++)for(var o=2*e;o<2*e+2;o++){var s=new I(i,o);s.z=n+1;var a=this._tileCoordsToKey(s),l=this._tiles[a];l&&l.active?l.retain=!0:(l&&l.loaded&&(l.retain=!0),n+1this.options.maxZoom||void 0!==this.options.minZoom&&i1)this._setView(t,n);else{for(var c=i.min.y;c<=i.max.y;c++)for(var f=i.min.x;f<=i.max.x;f++){var d=new I(f,c);if(d.z=this._tileZoom,this._isValidTile(d)){var p=this._tiles[this._tileCoordsToKey(d)];p?p.current=!0:s.push(d)}}if(s.sort((function(t,e){return t.distanceTo(o)-e.distanceTo(o)})),0!==s.length){this._loading||(this._loading=!0,this.fire("loading"));var m=document.createDocumentFragment();for(f=0;fn.max.x)||!e.wrapLat&&(t.yn.max.y))return!1}if(!this.options.bounds)return!0;var r=this._tileCoordsToBounds(t);return F(this.options.bounds).overlaps(r)},_keyToBounds:function(t){return this._tileCoordsToBounds(this._keyToTileCoords(t))},_tileCoordsToNwSe:function(t){var e=this._map,n=this.getTileSize(),r=t.scaleBy(n),i=r.add(n),o=e.unproject(r,t.z),s=e.unproject(i,t.z);return[o,s]},_tileCoordsToBounds:function(t){var e=this._tileCoordsToNwSe(t),n=new D(e[0],e[1]);return this.options.noWrap||(n=this._map.wrapLatLngBounds(n)),n},_tileCoordsToKey:function(t){return t.x+":"+t.y+":"+t.z},_keyToTileCoords:function(t){var e=t.split(":"),n=new I(+e[0],+e[1]);return n.z=+e[2],n},_removeTile:function(t){var e=this._tiles[t];e&&(pe(e.el),delete this._tiles[t],this.fire("tileunload",{tile:e.el,coords:this._keyToTileCoords(t)}))},_initTile:function(t){ve(t,"leaflet-tile");var e=this.getTileSize();t.style.width=e.x+"px",t.style.height=e.y+"px",t.onselectstart=u,t.onmousemove=u,Nt.ielt9&&this.options.opacity<1&&ke(t,this.options.opacity)},_addTile:function(t,e){var n=this._getTilePos(t),r=this._tileCoordsToKey(t),o=this.createTile(this._wrapCoords(t),i(this._tileReady,this,t));this._initTile(o),this.createTile.length<2&&M(i(this._tileReady,this,t,null,o)),Ee(o,n),this._tiles[r]={el:o,coords:t,current:!0},e.appendChild(o),this.fire("tileloadstart",{tile:o,coords:t})},_tileReady:function(t,e,n){e&&this.fire("tileerror",{error:e,tile:n,coords:t});var r=this._tileCoordsToKey(t);n=this._tiles[r],n&&(n.loaded=+new Date,this._map._fadeAnimated?(ke(n.el,0),A(this._fadeFrame),this._fadeFrame=M(this._updateOpacity,this)):(n.active=!0,this._pruneTiles()),e||(ve(n.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:n.el,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),Nt.ielt9||!this._map._fadeAnimated?M(this._pruneTiles,this):setTimeout(i(this._pruneTiles,this),250)))},_getTilePos:function(t){return t.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(t){var e=new I(this._wrapX?l(t.x,this._wrapX):t.x,this._wrapY?l(t.y,this._wrapY):t.y);return e.z=t.z,e},_pxBoundsToTileRange:function(t){var e=this.getTileSize();return new N(t.min.unscaleBy(e).floor(),t.max.unscaleBy(e).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var t in this._tiles)if(!this._tiles[t].loaded)return!1;return!0}});function Dr(t){return new Br(t)}var Fr=Br.extend({options:{minZoom:0,maxZoom:18,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1,referrerPolicy:!1},initialize:function(t,e){this._url=t,e=d(this,e),e.detectRetina&&Nt.retina&&e.maxZoom>0?(e.tileSize=Math.floor(e.tileSize/2),e.zoomReverse?(e.zoomOffset--,e.minZoom=Math.min(e.maxZoom,e.minZoom+1)):(e.zoomOffset++,e.maxZoom=Math.max(e.minZoom,e.maxZoom-1)),e.minZoom=Math.max(0,e.minZoom)):e.zoomReverse?e.minZoom=Math.min(e.maxZoom,e.minZoom):e.maxZoom=Math.max(e.minZoom,e.maxZoom),"string"===typeof e.subdomains&&(e.subdomains=e.subdomains.split("")),this.on("tileunload",this._onTileRemove)},setUrl:function(t,e){return this._url===t&&void 0===e&&(e=!0),this._url=t,e||this.redraw(),this},createTile:function(t,e){var n=document.createElement("img");return Be(n,"load",i(this._tileOnLoad,this,e,n)),Be(n,"error",i(this._tileOnError,this,e,n)),(this.options.crossOrigin||""===this.options.crossOrigin)&&(n.crossOrigin=!0===this.options.crossOrigin?"":this.options.crossOrigin),"string"===typeof this.options.referrerPolicy&&(n.referrerPolicy=this.options.referrerPolicy),n.alt="",n.src=this.getTileUrl(t),n},getTileUrl:function(t){var e={r:Nt.retina?"@2x":"",s:this._getSubdomain(t),x:t.x,y:t.y,z:this._getZoomForUrl()};if(this._map&&!this._map.options.crs.infinite){var r=this._globalTileRange.max.y-t.y;this.options.tms&&(e["y"]=r),e["-y"]=r}return g(this._url,n(e,this.options))},_tileOnLoad:function(t,e){Nt.ielt9?setTimeout(i(t,this,null,e),0):t(null,e)},_tileOnError:function(t,e,n){var r=this.options.errorTileUrl;r&&e.getAttribute("src")!==r&&(e.src=r),t(n,e)},_onTileRemove:function(t){t.tile.onload=null},_getZoomForUrl:function(){var t=this._tileZoom,e=this.options.maxZoom,n=this.options.zoomReverse,r=this.options.zoomOffset;return n&&(t=e-t),t+r},_getSubdomain:function(t){var e=Math.abs(t.x+t.y)%this.options.subdomains.length;return this.options.subdomains[e]},_abortLoading:function(){var t,e;for(t in this._tiles)if(this._tiles[t].coords.z!==this._tileZoom&&(e=this._tiles[t].el,e.onload=u,e.onerror=u,!e.complete)){e.src=v;var n=this._tiles[t].coords;pe(e),delete this._tiles[t],this.fire("tileabort",{tile:e,coords:n})}},_removeTile:function(t){var e=this._tiles[t];if(e)return e.el.setAttribute("src",v),Br.prototype._removeTile.call(this,t)},_tileReady:function(t,e,n){if(this._map&&(!n||n.getAttribute("src")!==v))return Br.prototype._tileReady.call(this,t,e,n)}});function Ur(t,e){return new Fr(t,e)}var Gr=Fr.extend({defaultWmsParams:{service:"WMS",request:"GetMap",layers:"",styles:"",format:"image/jpeg",transparent:!1,version:"1.1.1"},options:{crs:null,uppercase:!1},initialize:function(t,e){this._url=t;var r=n({},this.defaultWmsParams);for(var i in e)i in this.options||(r[i]=e[i]);e=d(this,e);var o=e.detectRetina&&Nt.retina?2:1,s=this.getTileSize();r.width=s.x*o,r.height=s.y*o,this.wmsParams=r},onAdd:function(t){this._crs=this.options.crs||t.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version);var e=this._wmsVersion>=1.3?"crs":"srs";this.wmsParams[e]=this._crs.code,Fr.prototype.onAdd.call(this,t)},getTileUrl:function(t){var e=this._tileCoordsToNwSe(t),n=this._crs,r=B(n.project(e[0]),n.project(e[1])),i=r.min,o=r.max,s=(this._wmsVersion>=1.3&&this._crs===qn?[i.y,i.x,o.y,o.x]:[i.x,i.y,o.x,o.y]).join(","),a=Fr.prototype.getTileUrl.call(this,t);return a+p(this.wmsParams,a,this.options.uppercase)+(this.options.uppercase?"&BBOX=":"&bbox=")+s},setParams:function(t,e){return n(this.wmsParams,t),e||this.redraw(),this}});function zr(t,e){return new Gr(t,e)}Fr.WMS=Gr,Ur.wms=zr;var Hr=Wn.extend({options:{padding:.1},initialize:function(t){d(this,t),s(this),this._layers=this._layers||{}},onAdd:function(){this._container||(this._initContainer(),ve(this._container,"leaflet-zoom-animated")),this.getPane().appendChild(this._container),this._update(),this.on("update",this._updatePaths,this)},onRemove:function(){this.off("update",this._updatePaths,this),this._destroyContainer()},getEvents:function(){var t={viewreset:this._reset,zoom:this._onZoom,moveend:this._update,zoomend:this._onZoomEnd};return this._zoomAnimated&&(t.zoomanim=this._onAnimZoom),t},_onAnimZoom:function(t){this._updateTransform(t.center,t.zoom)},_onZoom:function(){this._updateTransform(this._map.getCenter(),this._map.getZoom())},_updateTransform:function(t,e){var n=this._map.getZoomScale(e,this._zoom),r=this._map.getSize().multiplyBy(.5+this.options.padding),i=this._map.project(this._center,e),o=r.multiplyBy(-n).add(i).subtract(this._map._getNewPixelOrigin(t,e));Nt.any3d?Ae(this._container,o,n):Ee(this._container,o)},_reset:function(){for(var t in this._update(),this._updateTransform(this._center,this._zoom),this._layers)this._layers[t]._reset()},_onZoomEnd:function(){for(var t in this._layers)this._layers[t]._project()},_updatePaths:function(){for(var t in this._layers)this._layers[t]._update()},_update:function(){var t=this.options.padding,e=this._map.getSize(),n=this._map.containerPointToLayerPoint(e.multiplyBy(-t)).round();this._bounds=new N(n,n.add(e.multiplyBy(1+2*t)).round()),this._center=this._map.getCenter(),this._zoom=this._map.getZoom()}}),qr=Hr.extend({options:{tolerance:0},getEvents:function(){var t=Hr.prototype.getEvents.call(this);return t.viewprereset=this._onViewPreReset,t},_onViewPreReset:function(){this._postponeUpdatePaths=!0},onAdd:function(){Hr.prototype.onAdd.call(this),this._draw()},_initContainer:function(){var t=this._container=document.createElement("canvas");Be(t,"mousemove",this._onMouseMove,this),Be(t,"click dblclick mousedown mouseup contextmenu",this._onClick,this),Be(t,"mouseout",this._handleMouseOut,this),t["_leaflet_disable_events"]=!0,this._ctx=t.getContext("2d")},_destroyContainer:function(){A(this._redrawRequest),delete this._ctx,pe(this._container),Fe(this._container),delete this._container},_updatePaths:function(){if(!this._postponeUpdatePaths){var t;for(var e in this._redrawBounds=null,this._layers)t=this._layers[e],t._update();this._redraw()}},_update:function(){if(!this._map._animatingZoom||!this._bounds){Hr.prototype._update.call(this);var t=this._bounds,e=this._container,n=t.getSize(),r=Nt.retina?2:1;Ee(e,t.min),e.width=r*n.x,e.height=r*n.y,e.style.width=n.x+"px",e.style.height=n.y+"px",Nt.retina&&this._ctx.scale(2,2),this._ctx.translate(-t.min.x,-t.min.y),this.fire("update")}},_reset:function(){Hr.prototype._reset.call(this),this._postponeUpdatePaths&&(this._postponeUpdatePaths=!1,this._updatePaths())},_initPath:function(t){this._updateDashArray(t),this._layers[s(t)]=t;var e=t._order={layer:t,prev:this._drawLast,next:null};this._drawLast&&(this._drawLast.next=e),this._drawLast=e,this._drawFirst=this._drawFirst||this._drawLast},_addPath:function(t){this._requestRedraw(t)},_removePath:function(t){var e=t._order,n=e.next,r=e.prev;n?n.prev=r:this._drawLast=r,r?r.next=n:this._drawFirst=n,delete t._order,delete this._layers[s(t)],this._requestRedraw(t)},_updatePath:function(t){this._extendRedrawBounds(t),t._project(),t._update(),this._requestRedraw(t)},_updateStyle:function(t){this._updateDashArray(t),this._requestRedraw(t)},_updateDashArray:function(t){if("string"===typeof t.options.dashArray){var e,n,r=t.options.dashArray.split(/[, ]+/),i=[];for(n=0;n')}}catch(t){}return function(t){return document.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}(),Vr={_initContainer:function(){this._container=de("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(Hr.prototype._update.call(this),this.fire("update"))},_initPath:function(t){var e=t._container=Wr("shape");ve(e,"leaflet-vml-shape "+(this.options.className||"")),e.coordsize="1 1",t._path=Wr("path"),e.appendChild(t._path),this._updateStyle(t),this._layers[s(t)]=t},_addPath:function(t){var e=t._container;this._container.appendChild(e),t.options.interactive&&t.addInteractiveTarget(e)},_removePath:function(t){var e=t._container;pe(e),t.removeInteractiveTarget(e),delete this._layers[s(t)]},_updateStyle:function(t){var e=t._stroke,n=t._fill,r=t.options,i=t._container;i.stroked=!!r.stroke,i.filled=!!r.fill,r.stroke?(e||(e=t._stroke=Wr("stroke")),i.appendChild(e),e.weight=r.weight+"px",e.color=r.color,e.opacity=r.opacity,r.dashArray?e.dashStyle=y(r.dashArray)?r.dashArray.join(" "):r.dashArray.replace(/( *, *)/g," "):e.dashStyle="",e.endcap=r.lineCap.replace("butt","flat"),e.joinstyle=r.lineJoin):e&&(i.removeChild(e),t._stroke=null),r.fill?(n||(n=t._fill=Wr("fill")),i.appendChild(n),n.color=r.fillColor||r.color,n.opacity=r.fillOpacity):n&&(i.removeChild(n),t._fill=null)},_updateCircle:function(t){var e=t._point.round(),n=Math.round(t._radius),r=Math.round(t._radiusY||n);this._setPath(t,t._empty()?"M0 0":"AL "+e.x+","+e.y+" "+n+","+r+" 0,23592600")},_setPath:function(t,e){t._path.v=e},_bringToFront:function(t){ge(t._container)},_bringToBack:function(t){ye(t._container)}},Qr=Nt.vml?Wr:Y,Kr=Hr.extend({_initContainer:function(){this._container=Qr("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=Qr("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){pe(this._container),Fe(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_update:function(){if(!this._map._animatingZoom||!this._bounds){Hr.prototype._update.call(this);var t=this._bounds,e=t.getSize(),n=this._container;this._svgSize&&this._svgSize.equals(e)||(this._svgSize=e,n.setAttribute("width",e.x),n.setAttribute("height",e.y)),Ee(n,t.min),n.setAttribute("viewBox",[t.min.x,t.min.y,e.x,e.y].join(" ")),this.fire("update")}},_initPath:function(t){var e=t._path=Qr("path");t.options.className&&ve(e,t.options.className),t.options.interactive&&ve(e,"leaflet-interactive"),this._updateStyle(t),this._layers[s(t)]=t},_addPath:function(t){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(t._path),t.addInteractiveTarget(t._path)},_removePath:function(t){pe(t._path),t.removeInteractiveTarget(t._path),delete this._layers[s(t)]},_updatePath:function(t){t._project(),t._update()},_updateStyle:function(t){var e=t._path,n=t.options;e&&(n.stroke?(e.setAttribute("stroke",n.color),e.setAttribute("stroke-opacity",n.opacity),e.setAttribute("stroke-width",n.weight),e.setAttribute("stroke-linecap",n.lineCap),e.setAttribute("stroke-linejoin",n.lineJoin),n.dashArray?e.setAttribute("stroke-dasharray",n.dashArray):e.removeAttribute("stroke-dasharray"),n.dashOffset?e.setAttribute("stroke-dashoffset",n.dashOffset):e.removeAttribute("stroke-dashoffset")):e.setAttribute("stroke","none"),n.fill?(e.setAttribute("fill",n.fillColor||n.color),e.setAttribute("fill-opacity",n.fillOpacity),e.setAttribute("fill-rule",n.fillRule||"evenodd")):e.setAttribute("fill","none"))},_updatePoly:function(t,e){this._setPath(t,X(t._parts,e))},_updateCircle:function(t){var e=t._point,n=Math.max(Math.round(t._radius),1),r=Math.max(Math.round(t._radiusY),1)||n,i="a"+n+","+r+" 0 1,0 ",o=t._empty()?"M0 0":"M"+(e.x-n)+","+e.y+i+2*n+",0 "+i+2*-n+",0 ";this._setPath(t,o)},_setPath:function(t,e){t._path.setAttribute("d",e)},_bringToFront:function(t){ge(t._path)},_bringToBack:function(t){ye(t._path)}});function Yr(t){return Nt.svg||Nt.vml?new Kr(t):null}Nt.vml&&Kr.include(Vr),nn.include({getRenderer:function(t){var e=t.options.renderer||this._getPaneRenderer(t.options.pane)||this.options.renderer||this._renderer;return e||(e=this._renderer=this._createRenderer()),this.hasLayer(e)||this.addLayer(e),e},_getPaneRenderer:function(t){if("overlayPane"===t||void 0===t)return!1;var e=this._paneRenderers[t];return void 0===e&&(e=this._createRenderer({pane:t}),this._paneRenderers[t]=e),e},_createRenderer:function(t){return this.options.preferCanvas&&Zr(t)||Yr(t)}});var Xr=hr.extend({initialize:function(t,e){hr.prototype.initialize.call(this,this._boundsToLatLngs(t),e)},setBounds:function(t){return this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return t=F(t),[t.getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}});function Jr(t,e){return new Xr(t,e)}Kr.create=Qr,Kr.pointsToPath=X,fr.geometryToLayer=dr,fr.coordsToLatLng=mr,fr.coordsToLatLngs=gr,fr.latLngToCoords=yr,fr.latLngsToCoords=_r,fr.getFeature=vr,fr.asFeature=br,nn.mergeOptions({boxZoom:!0});var $r=gn.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane,this._resetStateTimeout=0,t.on("unload",this._destroy,this)},addHooks:function(){Be(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){Fe(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){pe(this._pane),delete this._pane},_resetState:function(){this._resetStateTimeout=0,this._moved=!1},_clearDeferredResetState:function(){0!==this._resetStateTimeout&&(clearTimeout(this._resetStateTimeout),this._resetStateTimeout=0)},_onMouseDown:function(t){if(!t.shiftKey||1!==t.which&&1!==t.button)return!1;this._clearDeferredResetState(),this._resetState(),re(),Oe(),this._startPoint=this._map.mouseEventToContainerPoint(t),Be(document,{contextmenu:Qe,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(t){this._moved||(this._moved=!0,this._box=de("div","leaflet-zoom-box",this._container),ve(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(t);var e=new N(this._point,this._startPoint),n=e.getSize();Ee(this._box,e.min),this._box.style.width=n.x+"px",this._box.style.height=n.y+"px"},_finish:function(){this._moved&&(pe(this._box),be(this._container,"leaflet-crosshair")),ie(),Pe(),Fe(document,{contextmenu:Qe,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(t){if((1===t.which||1===t.button)&&(this._finish(),this._moved)){this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(i(this._resetState,this),0);var e=new D(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point));this._map.fitBounds(e).fire("boxzoomend",{boxZoomBounds:e})}},_onKeyDown:function(t){27===t.keyCode&&(this._finish(),this._clearDeferredResetState(),this._resetState())}});nn.addInitHook("addHandler","boxZoom",$r),nn.mergeOptions({doubleClickZoom:!0});var ti=gn.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(t){var e=this._map,n=e.getZoom(),r=e.options.zoomDelta,i=t.originalEvent.shiftKey?n-r:n+r;"center"===e.options.doubleClickZoom?e.setZoom(i):e.setZoomAround(t.containerPoint,i)}});nn.addInitHook("addHandler","doubleClickZoom",ti),nn.mergeOptions({dragging:!0,inertia:!0,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0});var ei=gn.extend({addHooks:function(){if(!this._draggable){var t=this._map;this._draggable=new vn(t._mapPane,t._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on("predrag",this._onPreDragLimit,this),t.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDragWrap,this),t.on("zoomend",this._onZoomEnd,this),t.whenReady(this._onZoomEnd,this))}ve(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){be(this._map._container,"leaflet-grab"),be(this._map._container,"leaflet-touch-drag"),this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},moving:function(){return this._draggable&&this._draggable._moving},_onDragStart:function(){var t=this._map;if(t._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity){var e=F(this._map.options.maxBounds);this._offsetLimit=B(this._map.latLngToContainerPoint(e.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(e.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))}else this._offsetLimit=null;t.fire("movestart").fire("dragstart"),t.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(t){if(this._map.options.inertia){var e=this._lastTime=+new Date,n=this._lastPos=this._draggable._absPos||this._draggable._newPos;this._positions.push(n),this._times.push(e),this._prunePositions(e)}this._map.fire("move",t).fire("drag",t)},_prunePositions:function(t){while(this._positions.length>1&&t-this._times[0]>50)this._positions.shift(),this._times.shift()},_onZoomEnd:function(){var t=this._map.getSize().divideBy(2),e=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=e.subtract(t).x,this._worldWidth=this._map.getPixelWorldBounds().getSize().x},_viscousLimit:function(t,e){return t-(t-e)*this._viscosity},_onPreDragLimit:function(){if(this._viscosity&&this._offsetLimit){var t=this._draggable._newPos.subtract(this._draggable._startPos),e=this._offsetLimit;t.xe.max.x&&(t.x=this._viscousLimit(t.x,e.max.x)),t.y>e.max.y&&(t.y=this._viscousLimit(t.y,e.max.y)),this._draggable._newPos=this._draggable._startPos.add(t)}},_onPreDragWrap:function(){var t=this._worldWidth,e=Math.round(t/2),n=this._initialWorldOffset,r=this._draggable._newPos.x,i=(r-e+n)%t+e-n,o=(r+e+n)%t-e-n,s=Math.abs(i+n)0?o:-o))-e;this._delta=0,this._startTime=null,s&&("center"===t.options.scrollWheelZoom?t.setZoom(e+s):t.setZoomAround(this._lastMousePos,e+s))}});nn.addInitHook("addHandler","scrollWheelZoom",ri);var ii=600;nn.mergeOptions({tapHold:Nt.touchNative&&Nt.safari&&Nt.mobile,tapTolerance:15});var oi=gn.extend({addHooks:function(){Be(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){Fe(this._map._container,"touchstart",this._onDown,this)},_onDown:function(t){if(clearTimeout(this._holdTimeout),1===t.touches.length){var e=t.touches[0];this._startPos=this._newPos=new I(e.clientX,e.clientY),this._holdTimeout=setTimeout(i((function(){this._cancel(),this._isTapValid()&&(Be(document,"touchend",Ve),Be(document,"touchend touchcancel",this._cancelClickPrevent),this._simulateEvent("contextmenu",e))}),this),ii),Be(document,"touchend touchcancel contextmenu",this._cancel,this),Be(document,"touchmove",this._onMove,this)}},_cancelClickPrevent:function t(){Fe(document,"touchend",Ve),Fe(document,"touchend touchcancel",t)},_cancel:function(){clearTimeout(this._holdTimeout),Fe(document,"touchend touchcancel contextmenu",this._cancel,this),Fe(document,"touchmove",this._onMove,this)},_onMove:function(t){var e=t.touches[0];this._newPos=new I(e.clientX,e.clientY)},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_simulateEvent:function(t,e){var n=new MouseEvent(t,{bubbles:!0,cancelable:!0,view:window,screenX:e.screenX,screenY:e.screenY,clientX:e.clientX,clientY:e.clientY});n._simulated=!0,e.target.dispatchEvent(n)}});nn.addInitHook("addHandler","tapHold",oi),nn.mergeOptions({touchZoom:Nt.touch,bounceAtZoomLimits:!0});var si=gn.extend({addHooks:function(){ve(this._map._container,"leaflet-touch-zoom"),Be(this._map._container,"touchstart",this._onTouchStart,this)},removeHooks:function(){be(this._map._container,"leaflet-touch-zoom"),Fe(this._map._container,"touchstart",this._onTouchStart,this)},_onTouchStart:function(t){var e=this._map;if(t.touches&&2===t.touches.length&&!e._animatingZoom&&!this._zooming){var n=e.mouseEventToContainerPoint(t.touches[0]),r=e.mouseEventToContainerPoint(t.touches[1]);this._centerPoint=e.getSize()._divideBy(2),this._startLatLng=e.containerPointToLatLng(this._centerPoint),"center"!==e.options.touchZoom&&(this._pinchStartLatLng=e.containerPointToLatLng(n.add(r)._divideBy(2))),this._startDist=n.distanceTo(r),this._startZoom=e.getZoom(),this._moved=!1,this._zooming=!0,e._stop(),Be(document,"touchmove",this._onTouchMove,this),Be(document,"touchend touchcancel",this._onTouchEnd,this),Ve(t)}},_onTouchMove:function(t){if(t.touches&&2===t.touches.length&&this._zooming){var e=this._map,n=e.mouseEventToContainerPoint(t.touches[0]),r=e.mouseEventToContainerPoint(t.touches[1]),o=n.distanceTo(r)/this._startDist;if(this._zoom=e.getScaleZoom(o,this._startZoom),!e.options.bounceAtZoomLimits&&(this._zoome.getMaxZoom()&&o>1)&&(this._zoom=e._limitZoom(this._zoom)),"center"===e.options.touchZoom){if(this._center=this._startLatLng,1===o)return}else{var s=n._add(r)._divideBy(2)._subtract(this._centerPoint);if(1===o&&0===s.x&&0===s.y)return;this._center=e.unproject(e.project(this._pinchStartLatLng,this._zoom).subtract(s),this._zoom)}this._moved||(e._moveStart(!0,!1),this._moved=!0),A(this._animRequest);var a=i(e._move,e,this._center,this._zoom,{pinch:!0,round:!1},void 0);this._animRequest=M(a,this,!0),Ve(t)}},_onTouchEnd:function(){this._moved&&this._zooming?(this._zooming=!1,A(this._animRequest),Fe(document,"touchmove",this._onTouchMove,this),Fe(document,"touchend touchcancel",this._onTouchEnd,this),this._map.options.zoomAnimation?this._map._animateZoom(this._center,this._map._limitZoom(this._zoom),!0,this._map.options.zoomSnap):this._map._resetView(this._center,this._map._limitZoom(this._zoom))):this._zooming=!1}});nn.addInitHook("addHandler","touchZoom",si),nn.BoxZoom=$r,nn.DoubleClickZoom=ti,nn.Drag=ei,nn.Keyboard=ni,nn.ScrollWheelZoom=ri,nn.TapHold=oi,nn.TouchZoom=si,t.Bounds=N,t.Browser=Nt,t.CRS=z,t.Canvas=qr,t.Circle=sr,t.CircleMarker=ir,t.Class=C,t.Control=on,t.DivIcon=jr,t.DivOverlay=Or,t.DomEvent=tn,t.DomUtil=Ne,t.Draggable=vn,t.Evented=P,t.FeatureGroup=Kn,t.GeoJSON=fr,t.GridLayer=Br,t.Handler=gn,t.Icon=Xn,t.ImageOverlay=Sr,t.LatLng=U,t.LatLngBounds=D,t.Layer=Wn,t.LayerGroup=Vn,t.LineUtil=Fn,t.Map=nn,t.Marker=er,t.Mixin=yn,t.Path=rr,t.Point=I,t.PolyUtil=Sn,t.Polygon=hr,t.Polyline=lr,t.Popup=Pr,t.PosAnimation=en,t.Projection=zn,t.Rectangle=Xr,t.Renderer=Hr,t.SVG=Kr,t.SVGOverlay=Cr,t.TileLayer=Fr,t.Tooltip=Ir,t.Transformation=W,t.Util=E,t.VideoOverlay=Ar,t.bind=i,t.bounds=B,t.canvas=Zr,t.circle=ar,t.circleMarker=or,t.control=sn,t.divIcon=Nr,t.extend=n,t.featureGroup=Yn,t.geoJSON=xr,t.geoJson=kr,t.gridLayer=Dr,t.icon=Jn,t.imageOverlay=Mr,t.latLng=G,t.latLngBounds=F,t.layerGroup=Qn,t.map=rn,t.marker=nr,t.point=j,t.polygon=cr,t.polyline=ur,t.popup=Lr,t.rectangle=Jr,t.setOptions=d,t.stamp=s,t.svg=Yr,t.svgOverlay=Tr,t.tileLayer=Ur,t.tooltip=Rr,t.transformation=V,t.version=e,t.videoOverlay=Er;var ai=window.L;t.noConflict=function(){return window.L=ai,this},window.L=t}))},74972:function(t,e,n){var r;let i=n(17216);const o=n(38776);"object"===typeof i&&"function"!==typeof i.defs&&"function"===typeof i.default&&(i=i.default),i.defs(o),r=function(){return i}.call(e,n,e,t),void 0===r||(t.exports=r),t.exports=i,t.exports["default"]=i},66056:function(t,e,n){var r;function i(){const t=[],e=t=>"object"===typeof t&&0===Object.keys(t).length&&"{}"===JSON.stringify(t),n=r=>{if(r){if(Array.isArray(r))return r.forEach(n);r.default&&(r=r.default),e(r)||t.push(r)}};if(Array.from(arguments).forEach(n),0===t.length)throw Error("[proj4-merge] merge called with zero instances of proj4");const[r,...i]=t;return i.forEach((t=>{r.defs(Object.entries(t.defs))})),r}r=function(){return i}.call(e,n,e,t),void 0===r||(t.exports=r),t.exports=i,t.exports["default"]=i},17216:function(t,e,n){"use strict";function r(t){t("EPSG:4326","+title=WGS 84 (long/lat) +proj=longlat +ellps=WGS84 +datum=WGS84 +units=degrees"),t("EPSG:4269","+title=NAD83 (long/lat) +proj=longlat +a=6378137.0 +b=6356752.31414036 +ellps=GRS80 +datum=NAD83 +units=degrees"),t("EPSG:3857","+title=WGS 84 / Pseudo-Mercator +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs"),t.WGS84=t["EPSG:4326"],t["EPSG:3785"]=t["EPSG:3857"],t.GOOGLE=t["EPSG:3857"],t["EPSG:900913"]=t["EPSG:3857"],t["EPSG:102113"]=t["EPSG:3857"]}n.r(e),n.d(e,{default:function(){return Jo}});var i=1,o=2,s=3,a=4,l=5,u=6378137,h=6356752.314,c=.0066943799901413165,f=484813681109536e-20,d=Math.PI/2,p=.16666666666666666,m=.04722222222222222,g=.022156084656084655,y=1e-10,_=.017453292519943295,v=57.29577951308232,b=Math.PI/4,w=2*Math.PI,x=3.14159265359,k={greenwich:0,lisbon:-9.131906111111,paris:2.337229166667,bogota:-74.080916666667,madrid:-3.687938888889,rome:12.452333333333,bern:7.439583333333,jakarta:106.807719444444,ferro:-17.666666666667,brussels:4.367975,stockholm:18.058277777778,athens:23.7163375,oslo:10.722916666667},S={ft:{to_meter:.3048},"us-ft":{to_meter:1200/3937}},M=/[\s_\-\/\(\)]/g;function A(t,e){if(t[e])return t[e];var n,r,i=Object.keys(t),o=e.toLowerCase().replace(M,""),s=-1;while(++s=this.text.length)return;t=this.text[this.place++]}switch(this.state){case T:return this.neutral(t);case O:return this.keyword(t);case L:return this.quoted(t);case I:return this.afterquote(t);case P:return this.number(t);case R:return}},U.prototype.afterquote=function(t){if('"'===t)return this.word+='"',void(this.state=L);if(D.test(t))return this.word=this.word.trim(),void this.afterItem(t);throw new Error("havn't handled \""+t+'" in afterquote yet, index '+this.place)},U.prototype.afterItem=function(t){return","===t?(null!==this.word&&this.currentObject.push(this.word),this.word=null,void(this.state=T)):"]"===t?(this.level--,null!==this.word&&(this.currentObject.push(this.word),this.word=null),this.state=T,this.currentObject=this.stack.pop(),void(this.currentObject||(this.state=R))):void 0},U.prototype.number=function(t){if(!F.test(t)){if(D.test(t))return this.word=parseFloat(this.word),void this.afterItem(t);throw new Error("havn't handled \""+t+'" in number yet, index '+this.place)}this.word+=t},U.prototype.quoted=function(t){'"'!==t?this.word+=t:this.state=I},U.prototype.keyword=function(t){if(B.test(t))this.word+=t;else{if("["===t){var e=[];return e.push(this.word),this.level++,null===this.root?this.root=e:this.currentObject.push(e),this.stack.push(this.currentObject),this.currentObject=e,void(this.state=T)}if(!D.test(t))throw new Error("havn't handled \""+t+'" in keyword yet, index '+this.place);this.afterItem(t)}},U.prototype.neutral=function(t){if(N.test(t))return this.word=t,void(this.state=O);if('"'===t)return this.word="",void(this.state=L);if(F.test(t))return this.word=t,void(this.state=P);if(!D.test(t))throw new Error("havn't handled \""+t+'" in neutral yet, index '+this.place);this.afterItem(t)},U.prototype.output=function(){while(this.place0?90:-90)):(t.lat0=W(t.lat1>0?90:-90),t.lat_ts=t.lat1)}function Q(t){var e=C(t),n=e.shift(),r=e.shift();e.unshift(["name",r]),e.unshift(["type",n]);var i={};return H(e,i),V(i),i}function K(t){var e=this;if(2===arguments.length){var n=arguments[1];"string"===typeof n?"+"===n.charAt(0)?K[t]=E(arguments[1]):K[t]=Q(arguments[1]):K[t]=n}else if(1===arguments.length){if(Array.isArray(t))return t.map((function(t){Array.isArray(t)?K.apply(e,t):K(t)}));if("string"===typeof t){if(t in K)return K[t]}else"EPSG"in t?K["EPSG:"+t.EPSG]=t:"ESRI"in t?K["ESRI:"+t.ESRI]=t:"IAU2000"in t?K["IAU2000:"+t.IAU2000]=t:console.log(t);return}}r(K);var Y=K;function X(t){return"string"===typeof t}function J(t){return t in Y}var $=["PROJECTEDCRS","PROJCRS","GEOGCS","GEOCCS","PROJCS","LOCAL_CS","GEODCRS","GEODETICCRS","GEODETICDATUM","ENGCRS","ENGINEERINGCRS"];function tt(t){return $.some((function(e){return t.indexOf(e)>-1}))}var et=["3857","900913","3785","102113"];function nt(t){var e=A(t,"authority");if(e){var n=A(e,"epsg");return n&&et.indexOf(n)>-1}}function rt(t){var e=A(t,"extension");if(e)return A(e,"proj4")}function it(t){return"+"===t[0]}function ot(t){if(!X(t))return t;if(J(t))return Y[t];if(tt(t)){var e=Q(t);if(nt(e))return Y["EPSG:3857"];var n=rt(e);return n?E(n):e}return it(t)?E(t):void 0}var st=ot;function at(t,e){var n,r;if(t=t||{},!e)return t;for(r in e)n=e[r],void 0!==n&&(t[r]=n);return t}function lt(t,e,n){var r=t*e;return n/Math.sqrt(1-r*r)}function ut(t){return t<0?-1:1}function ht(t){return Math.abs(t)<=x?t:t-ut(t)*w}function ct(t,e,n){var r=t*n,i=.5*t;return r=Math.pow((1-r)/(1+r),i),Math.tan(.5*(d-e))/r}function ft(t,e){for(var n,r,i=.5*t,o=d-2*Math.atan(e),s=0;s<=15;s++)if(n=t*Math.sin(o),r=d-2*Math.atan(e*Math.pow((1-n)/(1+n),i))-o,o+=r,Math.abs(r)<=1e-10)return o;return-9999}function dt(){var t=this.b/this.a;this.es=1-t*t,"x0"in this||(this.x0=0),"y0"in this||(this.y0=0),this.e=Math.sqrt(this.es),this.lat_ts?this.sphere?this.k0=Math.cos(this.lat_ts):this.k0=lt(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts)):this.k0||(this.k?this.k0=this.k:this.k0=1)}function pt(t){var e,n,r=t.x,i=t.y;if(i*v>90&&i*v<-90&&r*v>180&&r*v<-180)return null;if(Math.abs(Math.abs(i)-d)<=y)return null;if(this.sphere)e=this.x0+this.a*this.k0*ht(r-this.long0),n=this.y0+this.a*this.k0*Math.log(Math.tan(b+.5*i));else{var o=Math.sin(i),s=ct(this.e,i,o);e=this.x0+this.a*this.k0*ht(r-this.long0),n=this.y0-this.a*this.k0*Math.log(s)}return t.x=e,t.y=n,t}function mt(t){var e,n,r=t.x-this.x0,i=t.y-this.y0;if(this.sphere)n=d-2*Math.atan(Math.exp(-i/(this.a*this.k0)));else{var o=Math.exp(-i/(this.a*this.k0));if(n=ft(this.e,o),-9999===n)return null}return e=ht(this.long0+r/(this.a*this.k0)),t.x=e,t.y=n,t}var gt=["Mercator","Popular Visualisation Pseudo Mercator","Mercator_1SP","Mercator_Auxiliary_Sphere","merc"],yt={init:dt,forward:pt,inverse:mt,names:gt};function _t(){}function vt(t){return t}var bt=["longlat","identity"],wt={init:_t,forward:vt,inverse:vt,names:bt},xt=[yt,wt],kt={},St=[];function Mt(t,e){var n=St.length;return t.names?(St[n]=t,t.names.forEach((function(t){kt[t.toLowerCase()]=n})),this):(console.log(e),!0)}function At(t){if(!t)return!1;var e=t.toLowerCase();return"undefined"!==typeof kt[e]&&St[kt[e]]?St[kt[e]]:void 0}function Et(){xt.forEach(Mt)}var Ct={start:Et,add:Mt,get:At},Tt={MERIT:{a:6378137,rf:298.257,ellipseName:"MERIT 1983"},SGS85:{a:6378136,rf:298.257,ellipseName:"Soviet Geodetic System 85"},GRS80:{a:6378137,rf:298.257222101,ellipseName:"GRS 1980(IUGG, 1980)"},IAU76:{a:6378140,rf:298.257,ellipseName:"IAU 1976"},airy:{a:6377563.396,b:6356256.91,ellipseName:"Airy 1830"},APL4:{a:6378137,rf:298.25,ellipseName:"Appl. Physics. 1965"},NWL9D:{a:6378145,rf:298.25,ellipseName:"Naval Weapons Lab., 1965"},mod_airy:{a:6377340.189,b:6356034.446,ellipseName:"Modified Airy"},andrae:{a:6377104.43,rf:300,ellipseName:"Andrae 1876 (Den., Iclnd.)"},aust_SA:{a:6378160,rf:298.25,ellipseName:"Australian Natl & S. Amer. 1969"},GRS67:{a:6378160,rf:298.247167427,ellipseName:"GRS 67(IUGG 1967)"},bessel:{a:6377397.155,rf:299.1528128,ellipseName:"Bessel 1841"},bess_nam:{a:6377483.865,rf:299.1528128,ellipseName:"Bessel 1841 (Namibia)"},clrk66:{a:6378206.4,b:6356583.8,ellipseName:"Clarke 1866"},clrk80:{a:6378249.145,rf:293.4663,ellipseName:"Clarke 1880 mod."},clrk80ign:{a:6378249.2,b:6356515,rf:293.4660213,ellipseName:"Clarke 1880 (IGN)"},clrk58:{a:6378293.645208759,rf:294.2606763692654,ellipseName:"Clarke 1858"},CPM:{a:6375738.7,rf:334.29,ellipseName:"Comm. des Poids et Mesures 1799"},delmbr:{a:6376428,rf:311.5,ellipseName:"Delambre 1810 (Belgium)"},engelis:{a:6378136.05,rf:298.2566,ellipseName:"Engelis 1985"},evrst30:{a:6377276.345,rf:300.8017,ellipseName:"Everest 1830"},evrst48:{a:6377304.063,rf:300.8017,ellipseName:"Everest 1948"},evrst56:{a:6377301.243,rf:300.8017,ellipseName:"Everest 1956"},evrst69:{a:6377295.664,rf:300.8017,ellipseName:"Everest 1969"},evrstSS:{a:6377298.556,rf:300.8017,ellipseName:"Everest (Sabah & Sarawak)"},fschr60:{a:6378166,rf:298.3,ellipseName:"Fischer (Mercury Datum) 1960"},fschr60m:{a:6378155,rf:298.3,ellipseName:"Fischer 1960"},fschr68:{a:6378150,rf:298.3,ellipseName:"Fischer 1968"},helmert:{a:6378200,rf:298.3,ellipseName:"Helmert 1906"},hough:{a:6378270,rf:297,ellipseName:"Hough"},intl:{a:6378388,rf:297,ellipseName:"International 1909 (Hayford)"},kaula:{a:6378163,rf:298.24,ellipseName:"Kaula 1961"},lerch:{a:6378139,rf:298.257,ellipseName:"Lerch 1979"},mprts:{a:6397300,rf:191,ellipseName:"Maupertius 1738"},new_intl:{a:6378157.5,b:6356772.2,ellipseName:"New International 1967"},plessis:{a:6376523,rf:6355863,ellipseName:"Plessis 1817 (France)"},krass:{a:6378245,rf:298.3,ellipseName:"Krassovsky, 1942"},SEasia:{a:6378155,b:6356773.3205,ellipseName:"Southeast Asia"},walbeck:{a:6376896,b:6355834.8467,ellipseName:"Walbeck"},WGS60:{a:6378165,rf:298.3,ellipseName:"WGS 60"},WGS66:{a:6378145,rf:298.25,ellipseName:"WGS 66"},WGS7:{a:6378135,rf:298.26,ellipseName:"WGS 72"}},Ot=Tt.WGS84={a:6378137,rf:298.257223563,ellipseName:"WGS 84"};function Pt(t,e,n,r){var i=t*t,o=e*e,s=(i-o)/i,a=0;r?(t*=1-s*(p+s*(m+s*g)),i=t*t,s=0):a=Math.sqrt(s);var l=(i-o)/o;return{es:s,e:a,ep2:l}}function Lt(t,e,n,r,i){if(!t){var o=A(Tt,r);o||(o=Ot),t=o.a,e=o.b,n=o.rf}return n&&!e&&(e=(1-1/n)*t),(0===n||Math.abs(t-e)3&&(0===d.datum_params[3]&&0===d.datum_params[4]&&0===d.datum_params[5]&&0===d.datum_params[6]||(d.datum_type=o,d.datum_params[3]*=f,d.datum_params[4]*=f,d.datum_params[5]*=f,d.datum_params[6]=d.datum_params[6]/1e6+1))),c&&(d.datum_type=s,d.grids=c),d.a=n,d.b=r,d.es=u,d.ep2=h,d}It.wgs84={towgs84:"0,0,0",ellipse:"WGS84",datumName:"WGS84"},It.ch1903={towgs84:"674.374,15.056,405.346",ellipse:"bessel",datumName:"swiss"},It.ggrs87={towgs84:"-199.87,74.79,246.62",ellipse:"GRS80",datumName:"Greek_Geodetic_Reference_System_1987"},It.nad83={towgs84:"0,0,0",ellipse:"GRS80",datumName:"North_American_Datum_1983"},It.nad27={nadgrids:"@conus,@alaska,@ntv2_0.gsb,@ntv1_can.dat",ellipse:"clrk66",datumName:"North_American_Datum_1927"},It.potsdam={towgs84:"598.1,73.7,418.2,0.202,0.045,-2.455,6.7",ellipse:"bessel",datumName:"Potsdam Rauenberg 1950 DHDN"},It.carthage={towgs84:"-263.0,6.0,431.0",ellipse:"clark80",datumName:"Carthage 1934 Tunisia"},It.hermannskogel={towgs84:"577.326,90.129,463.919,5.137,1.474,5.297,2.4232",ellipse:"bessel",datumName:"Hermannskogel"},It.militargeographische_institut={towgs84:"577.326,90.129,463.919,5.137,1.474,5.297,2.4232",ellipse:"bessel",datumName:"Militar-Geographische Institut"},It.osni52={towgs84:"482.530,-130.596,564.557,-1.042,-0.214,-0.631,8.15",ellipse:"airy",datumName:"Irish National"},It.ire65={towgs84:"482.530,-130.596,564.557,-1.042,-0.214,-0.631,8.15",ellipse:"mod_airy",datumName:"Ireland 1965"},It.rassadiran={towgs84:"-133.63,-157.5,-158.62",ellipse:"intl",datumName:"Rassadiran"},It.nzgd49={towgs84:"59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993",ellipse:"intl",datumName:"New Zealand Geodetic Datum 1949"},It.osgb36={towgs84:"446.448,-125.157,542.060,0.1502,0.2470,0.8421,-20.4894",ellipse:"airy",datumName:"Airy 1830"},It.s_jtsk={towgs84:"589,76,480",ellipse:"bessel",datumName:"S-JTSK (Ferro)"},It.beduaram={towgs84:"-106,-87,188",ellipse:"clrk80",datumName:"Beduaram"},It.gunung_segara={towgs84:"-403,684,41",ellipse:"bessel",datumName:"Gunung Segara Jakarta"},It.rnb72={towgs84:"106.869,-52.2978,103.724,-0.33657,0.456955,-1.84218,1",ellipse:"intl",datumName:"Reseau National Belge 1972"};var jt=Rt,Nt={};function Bt(t,e){var n=new DataView(e),r=Gt(n),i=zt(n,r),o=qt(n,i,r),s={header:i,subgrids:o};return Nt[t]=s,s}function Dt(t){if(void 0===t)return null;var e=t.split(",");return e.map(Ft)}function Ft(t){if(0===t.length)return null;var e="@"===t[0];return e&&(t=t.slice(1)),"null"===t?{name:"null",mandatory:!e,grid:null,isNull:!0}:{name:t,mandatory:!e,grid:Nt[t]||null,isNull:!1}}function Ut(t){return t/3600*Math.PI/180}function Gt(t){var e=t.getInt32(8,!1);return 11!==e&&(e=t.getInt32(8,!0),11!==e&&console.warn("Failed to detect nadgrid endian-ness, defaulting to little-endian"),!0)}function zt(t,e){return{nFields:t.getInt32(8,e),nSubgridFields:t.getInt32(24,e),nSubgrids:t.getInt32(40,e),shiftType:Ht(t,56,64).trim(),fromSemiMajorAxis:t.getFloat64(120,e),fromSemiMinorAxis:t.getFloat64(136,e),toSemiMajorAxis:t.getFloat64(152,e),toSemiMinorAxis:t.getFloat64(168,e)}}function Ht(t,e,n){return String.fromCharCode.apply(null,new Uint8Array(t.buffer.slice(e,n)))}function qt(t,e,n){for(var r=176,i=[],o=0;o5e-11)&&(t.datum_type===i?t.datum_params[0]===e.datum_params[0]&&t.datum_params[1]===e.datum_params[1]&&t.datum_params[2]===e.datum_params[2]:t.datum_type!==o||t.datum_params[0]===e.datum_params[0]&&t.datum_params[1]===e.datum_params[1]&&t.datum_params[2]===e.datum_params[2]&&t.datum_params[3]===e.datum_params[3]&&t.datum_params[4]===e.datum_params[4]&&t.datum_params[5]===e.datum_params[5]&&t.datum_params[6]===e.datum_params[6]))}function Xt(t,e,n){var r,i,o,s,a=t.x,l=t.y,u=t.z?t.z:0;if(l<-d&&l>-1.001*d)l=-d;else if(l>d&&l<1.001*d)l=d;else{if(l<-d)return{x:-1/0,y:-1/0,z:t.z};if(l>d)return{x:1/0,y:1/0,z:t.z}}return a>Math.PI&&(a-=2*Math.PI),i=Math.sin(l),s=Math.cos(l),o=i*i,r=n/Math.sqrt(1-e*o),{x:(r+u)*s*Math.cos(a),y:(r+u)*s*Math.sin(a),z:(r*(1-e)+u)*i}}function Jt(t,e,n,r){var i,o,s,a,l,u,h,c,f,p,m,g,y,_,v,b,w=1e-12,x=w*w,k=30,S=t.x,M=t.y,A=t.z?t.z:0;if(i=Math.sqrt(S*S+M*M),o=Math.sqrt(S*S+M*M+A*A),i/nx&&yr.y||d>r.x||gu&&Math.abs(s.y)>u);if(l<0)return console.log("Inverse grid shift iterator failed to converge."),r;r.x=ht(o.x+n.ll[0]),r.y=o.y+n.ll[1]}else isNaN(o.x)||(r.x=t.x+o.x,r.y=t.y+o.y);return r}function oe(t,e){var n,r={x:t.x/e.del[0],y:t.y/e.del[1]},i={x:Math.floor(r.x),y:Math.floor(r.y)},o={x:r.x-1*i.x,y:r.y-1*i.y},s={x:Number.NaN,y:Number.NaN};if(i.x<0||i.x>=e.lim[0])return s;if(i.y<0||i.y>=e.lim[1])return s;n=i.y*e.lim[0]+i.x;var a={x:e.cvs[n][0],y:e.cvs[n][1]};n++;var l={x:e.cvs[n][0],y:e.cvs[n][1]};n+=e.lim[0];var u={x:e.cvs[n][0],y:e.cvs[n][1]};n--;var h={x:e.cvs[n][0],y:e.cvs[n][1]},c=o.x*o.y,f=o.x*(1-o.y),d=(1-o.x)*(1-o.y),p=(1-o.x)*o.y;return s.x=d*a.x+f*l.x+p*h.x+c*u.x,s.y=d*a.y+f*l.y+p*h.y+c*u.y,s}function se(t,e,n){var r,i,o,s=n.x,a=n.y,l=n.z||0,u={};for(o=0;o<3;o++)if(!e||2!==o||void 0!==n.z)switch(0===o?(r=s,i=-1!=="ew".indexOf(t.axis[o])?"x":"y"):1===o?(r=a,i=-1!=="ns".indexOf(t.axis[o])?"y":"x"):(r=l,i="z"),t.axis[o]){case"e":u[i]=r;break;case"w":u[i]=-r;break;case"n":u[i]=r;break;case"s":u[i]=-r;break;case"u":void 0!==n[i]&&(u.z=r);break;case"d":void 0!==n[i]&&(u.z=-r);break;default:return null}return u}function ae(t){var e={x:t[0],y:t[1]};return t.length>2&&(e.z=t[2]),t.length>3&&(e.m=t[3]),e}function le(t){ue(t.x),ue(t.y)}function ue(t){if("function"===typeof Number.isFinite){if(Number.isFinite(t))return;throw new TypeError("coordinates must be finite numbers")}if("number"!==typeof t||t!==t||!isFinite(t))throw new TypeError("coordinates must be finite numbers")}function he(t,e){return(t.datum.datum_type===i||t.datum.datum_type===o||t.datum.datum_type===s)&&"WGS84"!==e.datumCode||(e.datum.datum_type===i||e.datum.datum_type===o||e.datum.datum_type===s)&&"WGS84"!==t.datumCode}function ce(t,e,n,r){var i;n=Array.isArray(n)?ae(n):{x:n.x,y:n.y,z:n.z,m:n.m};var o=void 0!==n.z;if(le(n),t.datum&&e.datum&&he(t,e)&&(i=new Kt("WGS84"),n=ce(t,i,n,r),t=i),r&&"enu"!==t.axis&&(n=se(t,!1,n)),"longlat"===t.projName)n={x:n.x*_,y:n.y*_,z:n.z||0};else if(t.to_meter&&(n={x:n.x*t.to_meter,y:n.y*t.to_meter,z:n.z||0}),n=t.inverse(n),!n)return;if(t.from_greenwich&&(n.x+=t.from_greenwich),n=ne(t.datum,e.datum,n),n)return e.from_greenwich&&(n={x:n.x-e.from_greenwich,y:n.y,z:n.z||0}),"longlat"===e.projName?n={x:n.x*v,y:n.y*v,z:n.z||0}:(n=e.forward(n),e.to_meter&&(n={x:n.x/e.to_meter,y:n.y/e.to_meter,z:n.z||0})),r&&"enu"!==e.axis?se(e,!0,n):(n&&!o&&delete n.z,n)}var fe=Kt("WGS84");function de(t,e,n,r){var i,o,s;return Array.isArray(n)?(i=ce(t,e,n,r)||{x:NaN,y:NaN},n.length>2?"undefined"!==typeof t.name&&"geocent"===t.name||"undefined"!==typeof e.name&&"geocent"===e.name?"number"===typeof i.z?[i.x,i.y,i.z].concat(n.splice(3)):[i.x,i.y,n[2]].concat(n.splice(3)):[i.x,i.y].concat(n.splice(2)):[i.x,i.y]):(o=ce(t,e,n,r),s=Object.keys(n),2===s.length||s.forEach((function(r){if("undefined"!==typeof t.name&&"geocent"===t.name||"undefined"!==typeof e.name&&"geocent"===e.name){if("x"===r||"y"===r||"z"===r)return}else if("x"===r||"y"===r)return;o[r]=n[r]})),o)}function pe(t){return t instanceof Kt?t:t.oProj?t.oProj:Kt(t)}function me(t,e,n){t=pe(t);var r,i=!1;return"undefined"===typeof e?(e=t,t=fe,i=!0):("undefined"!==typeof e.x||Array.isArray(e))&&(n=e,e=t,t=fe,i=!0),e=pe(e),n?de(t,e,n):(r={forward:function(n,r){return de(t,e,n,r)},inverse:function(n,r){return de(e,t,n,r)}},i&&(r.oProj=e),r)}var ge=me,ye=6,_e="AJSAJS",ve="AFAFAF",be=65,we=73,xe=79,ke=86,Se=90,Me={forward:Ae,inverse:Ee,toPoint:Ce};function Ae(t,e){return e=e||5,Re(Pe({lat:t[1],lon:t[0]}),e)}function Ee(t){var e=Le(De(t.toUpperCase()));return e.lat&&e.lon?[e.lon,e.lat,e.lon,e.lat]:[e.left,e.bottom,e.right,e.top]}function Ce(t){var e=Le(De(t.toUpperCase()));return e.lat&&e.lon?[e.lon,e.lat]:[(e.left+e.right)/2,(e.top+e.bottom)/2]}function Te(t){return t*(Math.PI/180)}function Oe(t){return t/Math.PI*180}function Pe(t){var e,n,r,i,o,s,a,l,u,h=t.lat,c=t.lon,f=6378137,d=.00669438,p=.9996,m=Te(h),g=Te(c);u=Math.floor((c+180)/6)+1,180===c&&(u=60),h>=56&&h<64&&c>=3&&c<12&&(u=32),h>=72&&h<84&&(c>=0&&c<9?u=31:c>=9&&c<21?u=33:c>=21&&c<33?u=35:c>=33&&c<42&&(u=37)),e=6*(u-1)-180+3,l=Te(e),n=d/(1-d),r=f/Math.sqrt(1-d*Math.sin(m)*Math.sin(m)),i=Math.tan(m)*Math.tan(m),o=n*Math.cos(m)*Math.cos(m),s=Math.cos(m)*(g-l),a=f*((1-d/4-3*d*d/64-5*d*d*d/256)*m-(3*d/8+3*d*d/32+45*d*d*d/1024)*Math.sin(2*m)+(15*d*d/256+45*d*d*d/1024)*Math.sin(4*m)-35*d*d*d/3072*Math.sin(6*m));var y=p*r*(s+(1-i+o)*s*s*s/6+(5-18*i+i*i+72*o-58*n)*s*s*s*s*s/120)+5e5,_=p*(a+r*Math.tan(m)*(s*s/2+(5-i+9*o+4*o*o)*s*s*s*s/24+(61-58*i+i*i+600*o-330*n)*s*s*s*s*s*s/720));return h<0&&(_+=1e7),{northing:Math.round(_),easting:Math.round(y),zoneNumber:u,zoneLetter:Ie(h)}}function Le(t){var e=t.northing,n=t.easting,r=t.zoneLetter,i=t.zoneNumber;if(i<0||i>60)return null;var o,s,a,l,u,h,c,f,d,p,m=.9996,g=6378137,y=.00669438,_=(1-Math.sqrt(1-y))/(1+Math.sqrt(1-y)),v=n-5e5,b=e;r<"N"&&(b-=1e7),f=6*(i-1)-180+3,o=y/(1-y),c=b/m,d=c/(g*(1-y/4-3*y*y/64-5*y*y*y/256)),p=d+(3*_/2-27*_*_*_/32)*Math.sin(2*d)+(21*_*_/16-55*_*_*_*_/32)*Math.sin(4*d)+151*_*_*_/96*Math.sin(6*d),s=g/Math.sqrt(1-y*Math.sin(p)*Math.sin(p)),a=Math.tan(p)*Math.tan(p),l=o*Math.cos(p)*Math.cos(p),u=g*(1-y)/Math.pow(1-y*Math.sin(p)*Math.sin(p),1.5),h=v/(s*m);var w=p-s*Math.tan(p)/u*(h*h/2-(5+3*a+10*l-4*l*l-9*o)*h*h*h*h/24+(61+90*a+298*l+45*a*a-252*o-3*l*l)*h*h*h*h*h*h/720);w=Oe(w);var x,k=(h-(1+2*a+l)*h*h*h/6+(5-2*l+28*a-3*l*l+8*o+24*a*a)*h*h*h*h*h/120)/Math.cos(p);if(k=f+Oe(k),t.accuracy){var S=Le({northing:t.northing+t.accuracy,easting:t.easting+t.accuracy,zoneLetter:t.zoneLetter,zoneNumber:t.zoneNumber});x={top:S.lat,right:S.lon,bottom:w,left:k}}else x={lat:w,lon:k};return x}function Ie(t){var e="Z";return 84>=t&&t>=72?e="X":72>t&&t>=64?e="W":64>t&&t>=56?e="V":56>t&&t>=48?e="U":48>t&&t>=40?e="T":40>t&&t>=32?e="S":32>t&&t>=24?e="R":24>t&&t>=16?e="Q":16>t&&t>=8?e="P":8>t&&t>=0?e="N":0>t&&t>=-8?e="M":-8>t&&t>=-16?e="L":-16>t&&t>=-24?e="K":-24>t&&t>=-32?e="J":-32>t&&t>=-40?e="H":-40>t&&t>=-48?e="G":-48>t&&t>=-56?e="F":-56>t&&t>=-64?e="E":-64>t&&t>=-72?e="D":-72>t&&t>=-80&&(e="C"),e}function Re(t,e){var n="00000"+t.easting,r="00000"+t.northing;return t.zoneNumber+t.zoneLetter+je(t.easting,t.northing,t.zoneNumber)+n.substr(n.length-5,e)+r.substr(r.length-5,e)}function je(t,e,n){var r=Ne(n),i=Math.floor(t/1e5),o=Math.floor(e/1e5)%20;return Be(i,o,r)}function Ne(t){var e=t%ye;return 0===e&&(e=ye),e}function Be(t,e,n){var r=n-1,i=_e.charCodeAt(r),o=ve.charCodeAt(r),s=i+t-1,a=o+e,l=!1;s>Se&&(s=s-Se+be-1,l=!0),(s===we||iwe||(s>we||ixe||(s>xe||iSe&&(s=s-Se+be-1),a>ke?(a=a-ke+be-1,l=!0):l=!1,(a===we||owe||(a>we||oxe||(a>xe||oke&&(a=a-ke+be-1);var u=String.fromCharCode(s)+String.fromCharCode(a);return u}function De(t){if(t&&0===t.length)throw"MGRSPoint coverting from nothing";var e,n=t.length,r=null,i="",o=0;while(!/[A-Z]/.test(e=t.charAt(o))){if(o>=2)throw"MGRSPoint bad conversion from: "+t;i+=e,o++}var s=parseInt(i,10);if(0===o||o+3>n)throw"MGRSPoint bad conversion from: "+t;var a=t.charAt(o++);if(a<="A"||"B"===a||"Y"===a||a>="Z"||"I"===a||"O"===a)throw"MGRSPoint zone letter "+a+" not handled: "+t;r=t.substring(o,o+=2);var l=Ne(s),u=Fe(r.charAt(0),l),h=Ue(r.charAt(1),l);while(h0&&(f=1e5/Math.pow(10,y),d=t.substring(o,o+y),_=parseFloat(d)*f,p=t.substring(o+y),v=parseFloat(p)*f),m=_+u,g=v+h,{easting:m,northing:g,zoneLetter:a,zoneNumber:s,accuracy:f}}function Fe(t,e){var n=_e.charCodeAt(e-1),r=1e5,i=!1;while(n!==t.charCodeAt(0)){if(n++,n===we&&n++,n===xe&&n++,n>Se){if(i)throw"Bad character: "+t;n=be,i=!0}r+=1e5}return r}function Ue(t,e){if(t>"V")throw"MGRSPoint given invalid Northing "+t;var n=ve.charCodeAt(e-1),r=0,i=!1;while(n!==t.charCodeAt(0)){if(n++,n===we&&n++,n===xe&&n++,n>ke){if(i)throw"Bad character: "+t;n=be,i=!0}r+=1e5}return r}function Ge(t){var e;switch(t){case"C":e=11e5;break;case"D":e=2e6;break;case"E":e=28e5;break;case"F":e=37e5;break;case"G":e=46e5;break;case"H":e=55e5;break;case"J":e=64e5;break;case"K":e=73e5;break;case"L":e=82e5;break;case"M":e=91e5;break;case"N":e=0;break;case"P":e=8e5;break;case"Q":e=17e5;break;case"R":e=26e5;break;case"S":e=35e5;break;case"T":e=44e5;break;case"U":e=53e5;break;case"V":e=62e5;break;case"W":e=7e6;break;case"X":e=79e5;break;default:e=-1}if(e>=0)return e;throw"Invalid zone letter: "+t}function ze(t,e,n){if(!(this instanceof ze))return new ze(t,e,n);if(Array.isArray(t))this.x=t[0],this.y=t[1],this.z=t[2]||0;else if("object"===typeof t)this.x=t.x,this.y=t.y,this.z=t.z||0;else if("string"===typeof t&&"undefined"===typeof e){var r=t.split(",");this.x=parseFloat(r[0],10),this.y=parseFloat(r[1],10),this.z=parseFloat(r[2],10)||0}else this.x=t,this.y=e,this.z=n||0;console.warn("proj4.Point will be removed in version 3, use proj4.toPoint")}ze.fromMGRS=function(t){return new ze(Ce(t))},ze.prototype.toMGRS=function(t){return Ae([this.x,this.y],t)};var He=ze,qe=1,Ze=.25,We=.046875,Ve=.01953125,Qe=.01068115234375,Ke=.75,Ye=.46875,Xe=.013020833333333334,Je=.007120768229166667,$e=.3645833333333333,tn=.005696614583333333,en=.3076171875;function nn(t){var e=[];e[0]=qe-t*(Ze+t*(We+t*(Ve+t*Qe))),e[1]=t*(Ke-t*(We+t*(Ve+t*Qe)));var n=t*t;return e[2]=n*(Ye-t*(Xe+t*Je)),n*=t,e[3]=n*($e-t*tn),e[4]=n*t*en,e}function rn(t,e,n,r){return n*=e,e*=e,r[0]*t-n*(r[1]+e*(r[2]+e*(r[3]+e*r[4])))}var on=20;function sn(t,e,n){for(var r=1/(1-e),i=t,o=on;o;--o){var s=Math.sin(i),a=1-e*s*s;if(a=(rn(i,s,Math.cos(i),n)-t)*(a*Math.sqrt(a))*r,i-=a,Math.abs(a)y?Math.tan(o):0,p=Math.pow(d,2),m=Math.pow(p,2);e=1-this.es*Math.pow(a,2),u/=Math.sqrt(e);var g=rn(o,a,l,this.en);n=this.a*(this.k0*u*(1+h/6*(1-p+c+h/20*(5-18*p+m+14*c-58*p*c+h/42*(61+179*m-m*p-479*p)))))+this.x0,r=this.a*(this.k0*(g-this.ml0+a*s*u/2*(1+h/12*(5-p+9*c+4*f+h/30*(61+m-58*p+270*c-330*p*c+h/56*(1385+543*m-m*p-3111*p))))))+this.y0}else{var _=l*Math.sin(s);if(Math.abs(Math.abs(_)-1)=1){if(_-1>y)return 93;r=0}else r=Math.acos(r);o<0&&(r=-r),r=this.a*this.k0*(r-this.lat0)+this.y0}return t.x=n,t.y=r,t}function un(t){var e,n,r,i,o=(t.x-this.x0)*(1/this.a),s=(t.y-this.y0)*(1/this.a);if(this.es)if(e=this.ml0+s/this.k0,n=sn(e,this.es,this.en),Math.abs(n)y?Math.tan(n):0,h=this.ep2*Math.pow(l,2),c=Math.pow(h,2),f=Math.pow(u,2),p=Math.pow(f,2);e=1-this.es*Math.pow(a,2);var m=o*Math.sqrt(e)/this.k0,g=Math.pow(m,2);e*=u,r=n-e*g/(1-this.es)*.5*(1-g/12*(5+3*f-9*h*f+h-4*c-g/30*(61+90*f-252*h*f+45*p+46*h-g/56*(1385+3633*f+4095*p+1574*p*f)))),i=ht(this.long0+m*(1-g/6*(1+2*f+h-g/20*(5+28*f+24*p+8*h*f+6*h-g/42*(61+662*f+1320*p+720*p*f))))/l)}else r=d*ut(s),i=0;else{var _=Math.exp(o/this.k0),v=.5*(_-1/_),b=this.lat0+s/this.k0,w=Math.cos(b);e=Math.sqrt((1-Math.pow(w,2))/(1+Math.pow(v,2))),r=Math.asin(e),s<0&&(r=-r),i=0===v&&0===w?0:ht(Math.atan2(v,w)+this.long0)}return t.x=i,t.y=r,t}var hn=["Fast_Transverse_Mercator","Fast Transverse Mercator"],cn={init:an,forward:ln,inverse:un,names:hn};function fn(t){var e=Math.exp(t);return e=(e-1/e)/2,e}function dn(t,e){t=Math.abs(t),e=Math.abs(e);var n=Math.max(t,e),r=Math.min(t,e)/(n||1);return n*Math.sqrt(1+Math.pow(r,2))}function pn(t){var e=1+t,n=e-1;return 0===n?t:t*Math.log(e)/n}function mn(t){var e=Math.abs(t);return e=pn(e*(1+e/(dn(1,e)+1))),t<0?-e:e}function gn(t,e){var n,r=2*Math.cos(2*e),i=t.length-1,o=t[i],s=0;while(--i>=0)n=r*o-s+t[i],s=o,o=n;return e+n*Math.sin(2*e)}function yn(t,e){var n,r=2*Math.cos(e),i=t.length-1,o=t[i],s=0;while(--i>=0)n=r*o-s+t[i],s=o,o=n;return Math.sin(e)*n}function _n(t){var e=Math.exp(t);return e=(e+1/e)/2,e}function vn(t,e,n){var r,i,o=Math.sin(e),s=Math.cos(e),a=fn(n),l=_n(n),u=2*s*l,h=-2*o*a,c=t.length-1,f=t[c],d=0,p=0,m=0;while(--c>=0)r=p,i=d,p=f,d=m,f=u*p-r-h*d+t[c],m=h*p-i+u*d;return u=o*l,h=s*a,[u*f-h*m,u*m+h*f]}function bn(){if(!this.approx&&(isNaN(this.es)||this.es<=0))throw new Error('Incorrect elliptical usage. Try using the +approx option in the proj string, or PROJECTION["Fast_Transverse_Mercator"] in the WKT.');this.approx&&(cn.init.apply(this),this.forward=cn.forward,this.inverse=cn.inverse),this.x0=void 0!==this.x0?this.x0:0,this.y0=void 0!==this.y0?this.y0:0,this.long0=void 0!==this.long0?this.long0:0,this.lat0=void 0!==this.lat0?this.lat0:0,this.cgb=[],this.cbg=[],this.utg=[],this.gtu=[];var t=this.es/(1+Math.sqrt(1-this.es)),e=t/(2-t),n=e;this.cgb[0]=e*(2+e*(-2/3+e*(e*(116/45+e*(26/45+e*(-2854/675)))-2))),this.cbg[0]=e*(e*(2/3+e*(4/3+e*(-82/45+e*(32/45+e*(4642/4725)))))-2),n*=e,this.cgb[1]=n*(7/3+e*(e*(-227/45+e*(2704/315+e*(2323/945)))-1.6)),this.cbg[1]=n*(5/3+e*(-16/15+e*(-13/9+e*(904/315+e*(-1522/945))))),n*=e,this.cgb[2]=n*(56/15+e*(-136/35+e*(-1262/105+e*(73814/2835)))),this.cbg[2]=n*(-26/15+e*(34/21+e*(1.6+e*(-12686/2835)))),n*=e,this.cgb[3]=n*(4279/630+e*(-332/35+e*(-399572/14175))),this.cbg[3]=n*(1237/630+e*(e*(-24832/14175)-2.4)),n*=e,this.cgb[4]=n*(4174/315+e*(-144838/6237)),this.cbg[4]=n*(-734/315+e*(109598/31185)),n*=e,this.cgb[5]=n*(601676/22275),this.cbg[5]=n*(444337/155925),n=Math.pow(e,2),this.Qn=this.k0/(1+e)*(1+n*(1/4+n*(1/64+n/256))),this.utg[0]=e*(e*(2/3+e*(-37/96+e*(1/360+e*(81/512+e*(-96199/604800)))))-.5),this.gtu[0]=e*(.5+e*(-2/3+e*(5/16+e*(41/180+e*(-127/288+e*(7891/37800)))))),this.utg[1]=n*(-1/48+e*(-1/15+e*(437/1440+e*(-46/105+e*(1118711/3870720))))),this.gtu[1]=n*(13/48+e*(e*(557/1440+e*(281/630+e*(-1983433/1935360)))-.6)),n*=e,this.utg[2]=n*(-17/480+e*(37/840+e*(209/4480+e*(-5569/90720)))),this.gtu[2]=n*(61/240+e*(-103/140+e*(15061/26880+e*(167603/181440)))),n*=e,this.utg[3]=n*(-4397/161280+e*(11/504+e*(830251/7257600))),this.gtu[3]=n*(49561/161280+e*(-179/168+e*(6601661/7257600))),n*=e,this.utg[4]=n*(-4583/161280+e*(108847/3991680)),this.gtu[4]=n*(34729/80640+e*(-3418889/1995840)),n*=e,this.utg[5]=n*(-20648693/638668800),this.gtu[5]=.6650675310896665*n;var r=gn(this.cbg,this.lat0);this.Zb=-this.Qn*(r+yn(this.gtu,2*r))}function wn(t){var e=ht(t.x-this.long0),n=t.y;n=gn(this.cbg,n);var r=Math.sin(n),i=Math.cos(n),o=Math.sin(e),s=Math.cos(e);n=Math.atan2(r,s*i),e=Math.atan2(o*i,dn(r,i*s)),e=mn(Math.tan(e));var a,l,u=vn(this.gtu,2*n,2*e);return n+=u[0],e+=u[1],Math.abs(e)<=2.623395162778?(a=this.a*(this.Qn*e)+this.x0,l=this.a*(this.Qn*n+this.Zb)+this.y0):(a=1/0,l=1/0),t.x=a,t.y=l,t}function xn(t){var e,n,r=(t.x-this.x0)*(1/this.a),i=(t.y-this.y0)*(1/this.a);if(i=(i-this.Zb)/this.Qn,r/=this.Qn,Math.abs(r)<=2.623395162778){var o=vn(this.utg,2*i,2*r);i+=o[0],r+=o[1],r=Math.atan(fn(r));var s=Math.sin(i),a=Math.cos(i),l=Math.sin(r),u=Math.cos(r);i=Math.atan2(s*u,dn(l,u*a)),r=Math.atan2(l,u*a),e=ht(r+this.long0),n=gn(this.cgb,i)}else e=1/0,n=1/0;return t.x=e,t.y=n,t}var kn=["Extended_Transverse_Mercator","Extended Transverse Mercator","etmerc","Transverse_Mercator","Transverse Mercator","Gauss Kruger","Gauss_Kruger","tmerc"],Sn={init:bn,forward:wn,inverse:xn,names:kn};function Mn(t,e){if(void 0===t){if(t=Math.floor(30*(ht(e)+Math.PI)/Math.PI)+1,t<0)return 0;if(t>60)return 60}return t}var An="etmerc";function En(){var t=Mn(this.zone,this.long0);if(void 0===t)throw new Error("unknown utm zone");this.lat0=0,this.long0=(6*Math.abs(t)-183)*_,this.x0=5e5,this.y0=this.utmSouth?1e7:0,this.k0=.9996,Sn.init.apply(this),this.forward=Sn.forward,this.inverse=Sn.inverse}var Cn=["Universal Transverse Mercator System","utm"],Tn={init:En,names:Cn,dependsOn:An};function On(t,e){return Math.pow((1-t)/(1+t),e)}var Pn=20;function Ln(){var t=Math.sin(this.lat0),e=Math.cos(this.lat0);e*=e,this.rc=Math.sqrt(1-this.es)/(1-this.es*t*t),this.C=Math.sqrt(1+this.es*e*e/(1-this.es)),this.phic0=Math.asin(t/this.C),this.ratexp=.5*this.C*this.e,this.K=Math.tan(.5*this.phic0+b)/(Math.pow(Math.tan(.5*this.lat0+b),this.C)*On(this.e*t,this.ratexp))}function In(t){var e=t.x,n=t.y;return t.y=2*Math.atan(this.K*Math.pow(Math.tan(.5*n+b),this.C)*On(this.e*Math.sin(n),this.ratexp))-d,t.x=this.C*e,t}function Rn(t){for(var e=1e-14,n=t.x/this.C,r=t.y,i=Math.pow(Math.tan(.5*r+b)/this.K,1/this.C),o=Pn;o>0;--o){if(r=2*Math.atan(i*On(this.e*Math.sin(t.y),-.5*this.e))-d,Math.abs(r-t.y)0?this.con=1:this.con=-1),this.cons=Math.sqrt(Math.pow(1+this.e,1+this.e)*Math.pow(1-this.e,1-this.e)),1===this.k0&&!isNaN(this.lat_ts)&&Math.abs(this.coslat0)<=y&&Math.abs(Math.cos(this.lat_ts))>y&&(this.k0=.5*this.cons*lt(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts))/ct(this.e,this.con*this.lat_ts,this.con*Math.sin(this.lat_ts))),this.ms1=lt(this.e,this.sinlat0,this.coslat0),this.X0=2*Math.atan(this.ssfn_(this.lat0,this.sinlat0,this.e))-d,this.cosX0=Math.cos(this.X0),this.sinX0=Math.sin(this.X0))}function qn(t){var e,n,r,i,o,s,a=t.x,l=t.y,u=Math.sin(l),h=Math.cos(l),c=ht(a-this.long0);return Math.abs(Math.abs(a-this.long0)-Math.PI)<=y&&Math.abs(l+this.lat0)<=y?(t.x=NaN,t.y=NaN,t):this.sphere?(e=2*this.k0/(1+this.sinlat0*u+this.coslat0*h*Math.cos(c)),t.x=this.a*e*h*Math.sin(c)+this.x0,t.y=this.a*e*(this.coslat0*u-this.sinlat0*h*Math.cos(c))+this.y0,t):(n=2*Math.atan(this.ssfn_(l,u,this.e))-d,i=Math.cos(n),r=Math.sin(n),Math.abs(this.coslat0)<=y?(o=ct(this.e,l*this.con,this.con*u),s=2*this.a*this.k0*o/this.cons,t.x=this.x0+s*Math.sin(a-this.long0),t.y=this.y0-this.con*s*Math.cos(a-this.long0),t):(Math.abs(this.sinlat0)0?ht(this.long0+Math.atan2(t.x,-1*t.y)):ht(this.long0+Math.atan2(t.x,t.y)):ht(this.long0+Math.atan2(t.x*Math.sin(a),s*this.coslat0*Math.cos(a)-t.y*this.sinlat0*Math.sin(a))),t.x=e,t.y=n,t)}if(Math.abs(this.coslat0)<=y){if(s<=y)return n=this.lat0,e=this.long0,t.x=e,t.y=n,t;t.x*=this.con,t.y*=this.con,r=s*this.cons/(2*this.a*this.k0),n=this.con*ft(this.e,r),e=this.con*ht(this.con*this.long0+Math.atan2(t.x,-1*t.y))}else i=2*Math.atan(s*this.cosX0/(2*this.a*this.k0*this.ms1)),e=this.long0,s<=y?o=this.X0:(o=Math.asin(Math.cos(i)*this.sinX0+t.y*Math.sin(i)*this.cosX0/s),e=ht(this.long0+Math.atan2(t.x*Math.sin(i),s*this.cosX0*Math.cos(i)-t.y*this.sinX0*Math.sin(i)))),n=-1*ft(this.e,Math.tan(.5*(d+o)));return t.x=e,t.y=n,t}var Wn=["stere","Stereographic_South_Pole","Polar Stereographic (variant B)","Polar_Stereographic"],Vn={init:Hn,forward:qn,inverse:Zn,names:Wn,ssfn_:zn};function Qn(){var t=this.lat0;this.lambda0=this.long0;var e=Math.sin(t),n=this.a,r=this.rf,i=1/r,o=2*i-Math.pow(i,2),s=this.e=Math.sqrt(o);this.R=this.k0*n*Math.sqrt(1-o)/(1-o*Math.pow(e,2)),this.alpha=Math.sqrt(1+o/(1-o)*Math.pow(Math.cos(t),4)),this.b0=Math.asin(e/this.alpha);var a=Math.log(Math.tan(Math.PI/4+this.b0/2)),l=Math.log(Math.tan(Math.PI/4+t/2)),u=Math.log((1+s*e)/(1-s*e));this.K=a-this.alpha*l+this.alpha*s/2*u}function Kn(t){var e=Math.log(Math.tan(Math.PI/4-t.y/2)),n=this.e/2*Math.log((1+this.e*Math.sin(t.y))/(1-this.e*Math.sin(t.y))),r=-this.alpha*(e+n)+this.K,i=2*(Math.atan(Math.exp(r))-Math.PI/4),o=this.alpha*(t.x-this.lambda0),s=Math.atan(Math.sin(o)/(Math.sin(this.b0)*Math.tan(i)+Math.cos(this.b0)*Math.cos(o))),a=Math.asin(Math.cos(this.b0)*Math.sin(i)-Math.sin(this.b0)*Math.cos(i)*Math.cos(o));return t.y=this.R/2*Math.log((1+Math.sin(a))/(1-Math.sin(a)))+this.y0,t.x=this.R*s+this.x0,t}function Yn(t){var e=t.x-this.x0,n=t.y-this.y0,r=e/this.R,i=2*(Math.atan(Math.exp(n/this.R))-Math.PI/4),o=Math.asin(Math.cos(this.b0)*Math.sin(i)+Math.sin(this.b0)*Math.cos(i)*Math.cos(r)),s=Math.atan(Math.sin(r)/(Math.cos(this.b0)*Math.cos(r)-Math.sin(this.b0)*Math.tan(i))),a=this.lambda0+s/this.alpha,l=0,u=o,h=-1e3,c=0;while(Math.abs(u-h)>1e-7){if(++c>20)return;l=1/this.alpha*(Math.log(Math.tan(Math.PI/4+o/2))-this.K)+this.e*Math.log(Math.tan(Math.PI/4+Math.asin(this.e*Math.sin(u))/2)),h=u,u=2*Math.atan(Math.exp(l))-Math.PI/2}return t.x=a,t.y=u,t}var Xn=["somerc"],Jn={init:Qn,forward:Kn,inverse:Yn,names:Xn},$n=1e-7;function tr(t){var e=["Hotine_Oblique_Mercator","Hotine_Oblique_Mercator_Azimuth_Natural_Origin"],n="object"===typeof t.PROJECTION?Object.keys(t.PROJECTION)[0]:t.PROJECTION;return"no_uoff"in t||"no_off"in t||-1!==e.indexOf(n)}function er(){var t,e,n,r,i,o,s,a,l,u,h,c=0,f=0,p=0,m=0,g=0,v=0,x=0;this.no_off=tr(this),this.no_rot="no_rot"in this;var k=!1;"alpha"in this&&(k=!0);var S=!1;if("rectified_grid_angle"in this&&(S=!0),k&&(x=this.alpha),S&&(c=this.rectified_grid_angle*_),k||S)f=this.longc;else if(p=this.long1,g=this.lat1,m=this.long2,v=this.lat2,Math.abs(g-v)<=$n||(t=Math.abs(g))<=$n||Math.abs(t-d)<=$n||Math.abs(Math.abs(this.lat0)-d)<=$n||Math.abs(Math.abs(v)-d)<=$n)throw new Error;var M=1-this.es;e=Math.sqrt(M),Math.abs(this.lat0)>y?(a=Math.sin(this.lat0),n=Math.cos(this.lat0),t=1-this.es*a*a,this.B=n*n,this.B=Math.sqrt(1+this.es*this.B*this.B/M),this.A=this.B*this.k0*e/t,r=this.B*e/(n*Math.sqrt(t)),i=r*r-1,i<=0?i=0:(i=Math.sqrt(i),this.lat0<0&&(i=-i)),this.E=i+=r,this.E*=Math.pow(ct(this.e,this.lat0,a),this.B)):(this.B=1/e,this.A=this.k0,this.E=r=i=1),k||S?(k?(h=Math.asin(Math.sin(x)/r),S||(c=x)):(h=c,x=Math.asin(r*Math.sin(h))),this.lam0=f-Math.asin(.5*(i-1/i)*Math.tan(h))/this.B):(o=Math.pow(ct(this.e,g,Math.sin(g)),this.B),s=Math.pow(ct(this.e,v,Math.sin(v)),this.B),i=this.E/o,l=(s-o)/(s+o),u=this.E*this.E,u=(u-s*o)/(u+s*o),t=p-m,t<-Math.pi?m-=w:t>Math.pi&&(m+=w),this.lam0=ht(.5*(p+m)-Math.atan(u*Math.tan(.5*this.B*(p-m))/l)/this.B),h=Math.atan(2*Math.sin(this.B*ht(p-this.lam0))/(i-1/i)),c=x=Math.asin(r*Math.sin(h))),this.singam=Math.sin(h),this.cosgam=Math.cos(h),this.sinrot=Math.sin(c),this.cosrot=Math.cos(c),this.rB=1/this.B,this.ArB=this.A*this.rB,this.BrA=1/this.ArB,this.A,this.B,this.no_off?this.u_0=0:(this.u_0=Math.abs(this.ArB*Math.atan(Math.sqrt(r*r-1)/Math.cos(x))),this.lat0<0&&(this.u_0=-this.u_0)),i=.5*h,this.v_pole_n=this.ArB*Math.log(Math.tan(b-i)),this.v_pole_s=this.ArB*Math.log(Math.tan(b+i))}function nr(t){var e,n,r,i,o,s,a,l,u={};if(t.x=t.x-this.lam0,Math.abs(Math.abs(t.y)-d)>y){if(o=this.E/Math.pow(ct(this.e,t.y,Math.sin(t.y)),this.B),s=1/o,e=.5*(o-s),n=.5*(o+s),i=Math.sin(this.B*t.x),r=(e*this.singam-i*this.cosgam)/n,Math.abs(Math.abs(r)-1)0?this.v_pole_n:this.v_pole_s,a=this.ArB*t.y;return this.no_rot?(u.x=a,u.y=l):(a-=this.u_0,u.x=l*this.cosrot+a*this.sinrot,u.y=a*this.cosrot-l*this.sinrot),u.x=this.a*u.x+this.x0,u.y=this.a*u.y+this.y0,u}function rr(t){var e,n,r,i,o,s,a,l={};if(t.x=(t.x-this.x0)*(1/this.a),t.y=(t.y-this.y0)*(1/this.a),this.no_rot?(n=t.y,e=t.x):(n=t.x*this.cosrot-t.y*this.sinrot,e=t.y*this.cosrot+t.x*this.sinrot+this.u_0),r=Math.exp(-this.BrA*n),i=.5*(r-1/r),o=.5*(r+1/r),s=Math.sin(this.BrA*e),a=(s*this.cosgam+i*this.singam)/o,Math.abs(Math.abs(a)-1)y?this.ns=Math.log(r/a)/Math.log(i/l):this.ns=e,isNaN(this.ns)&&(this.ns=e),this.f0=r/(this.ns*Math.pow(i,this.ns)),this.rh=this.a*this.f0*Math.pow(u,this.ns),this.title||(this.title="Lambert Conformal Conic")}}function ar(t){var e=t.x,n=t.y;Math.abs(2*Math.abs(n)-Math.PI)<=y&&(n=ut(n)*(d-2*y));var r,i,o=Math.abs(Math.abs(n)-d);if(o>y)r=ct(this.e,n,Math.sin(n)),i=this.a*this.f0*Math.pow(r,this.ns);else{if(o=n*this.ns,o<=0)return null;i=0}var s=this.ns*ht(e-this.long0);return t.x=this.k0*(i*Math.sin(s))+this.x0,t.y=this.k0*(this.rh-i*Math.cos(s))+this.y0,t}function lr(t){var e,n,r,i,o,s=(t.x-this.x0)/this.k0,a=this.rh-(t.y-this.y0)/this.k0;this.ns>0?(e=Math.sqrt(s*s+a*a),n=1):(e=-Math.sqrt(s*s+a*a),n=-1);var l=0;if(0!==e&&(l=Math.atan2(n*s,n*a)),0!==e||this.ns>0){if(n=1/this.ns,r=Math.pow(e/(this.a*this.f0),n),i=ft(this.e,r),-9999===i)return null}else i=-d;return o=ht(l/this.ns+this.long0),t.x=o,t.y=i,t}var ur=["Lambert Tangential Conformal Conic Projection","Lambert_Conformal_Conic","Lambert_Conformal_Conic_1SP","Lambert_Conformal_Conic_2SP","lcc","Lambert Conic Conformal (1SP)","Lambert Conic Conformal (2SP)"],hr={init:sr,forward:ar,inverse:lr,names:ur};function cr(){this.a=6377397.155,this.es=.006674372230614,this.e=Math.sqrt(this.es),this.lat0||(this.lat0=.863937979737193),this.long0||(this.long0=.4334234309119251),this.k0||(this.k0=.9999),this.s45=.785398163397448,this.s90=2*this.s45,this.fi0=this.lat0,this.e2=this.es,this.e=Math.sqrt(this.e2),this.alfa=Math.sqrt(1+this.e2*Math.pow(Math.cos(this.fi0),4)/(1-this.e2)),this.uq=1.04216856380474,this.u0=Math.asin(Math.sin(this.fi0)/this.alfa),this.g=Math.pow((1+this.e*Math.sin(this.fi0))/(1-this.e*Math.sin(this.fi0)),this.alfa*this.e/2),this.k=Math.tan(this.u0/2+this.s45)/Math.pow(Math.tan(this.fi0/2+this.s45),this.alfa)*this.g,this.k1=this.k0,this.n0=this.a*Math.sqrt(1-this.e2)/(1-this.e2*Math.pow(Math.sin(this.fi0),2)),this.s0=1.37008346281555,this.n=Math.sin(this.s0),this.ro0=this.k1*this.n0/Math.tan(this.s0),this.ad=this.s90-this.uq}function fr(t){var e,n,r,i,o,s,a,l=t.x,u=t.y,h=ht(l-this.long0);return e=Math.pow((1+this.e*Math.sin(u))/(1-this.e*Math.sin(u)),this.alfa*this.e/2),n=2*(Math.atan(this.k*Math.pow(Math.tan(u/2+this.s45),this.alfa)/e)-this.s45),r=-h*this.alfa,i=Math.asin(Math.cos(this.ad)*Math.sin(n)+Math.sin(this.ad)*Math.cos(n)*Math.cos(r)),o=Math.asin(Math.cos(n)*Math.sin(r)/Math.cos(i)),s=this.n*o,a=this.ro0*Math.pow(Math.tan(this.s0/2+this.s45),this.n)/Math.pow(Math.tan(i/2+this.s45),this.n),t.y=a*Math.cos(s)/1,t.x=a*Math.sin(s)/1,this.czech||(t.y*=-1,t.x*=-1),t}function dr(t){var e,n,r,i,o,s,a,l,u=t.x;t.x=t.y,t.y=u,this.czech||(t.y*=-1,t.x*=-1),s=Math.sqrt(t.x*t.x+t.y*t.y),o=Math.atan2(t.y,t.x),i=o/Math.sin(this.s0),r=2*(Math.atan(Math.pow(this.ro0/s,1/this.n)*Math.tan(this.s0/2+this.s45))-this.s45),e=Math.asin(Math.cos(this.ad)*Math.sin(r)-Math.sin(this.ad)*Math.cos(r)*Math.cos(i)),n=Math.asin(Math.cos(r)*Math.sin(i)/Math.cos(e)),t.x=this.long0-n/this.alfa,a=e,l=0;var h=0;do{t.y=2*(Math.atan(Math.pow(this.k,-1/this.alfa)*Math.pow(Math.tan(e/2+this.s45),1/this.alfa)*Math.pow((1+this.e*Math.sin(a))/(1-this.e*Math.sin(a)),this.e/2))-this.s45),Math.abs(a-t.y)<1e-10&&(l=1),a=t.y,h+=1}while(0===l&&h<15);return h>=15?null:t}var pr=["Krovak","krovak"],mr={init:cr,forward:fr,inverse:dr,names:pr};function gr(t,e,n,r,i){return t*i-e*Math.sin(2*i)+n*Math.sin(4*i)-r*Math.sin(6*i)}function yr(t){return 1-.25*t*(1+t/16*(3+1.25*t))}function _r(t){return.375*t*(1+.25*t*(1+.46875*t))}function vr(t){return.05859375*t*t*(1+.75*t)}function br(t){return t*t*t*(35/3072)}function wr(t,e,n){var r=e*n;return t/Math.sqrt(1-r*r)}function xr(t){return Math.abs(t)1e-7?(n=t*e,(1-t*t)*(e/(1-n*n)-.5/t*Math.log((1-n)/(1+n)))):2*e}var Or=1,Pr=2,Lr=3,Ir=4;function Rr(){var t,e=Math.abs(this.lat0);if(Math.abs(e-d)0)switch(this.qp=Tr(this.e,1),this.mmf=.5/(1-this.es),this.apa=Hr(this.es),this.mode){case this.N_POLE:this.dd=1;break;case this.S_POLE:this.dd=1;break;case this.EQUIT:this.rq=Math.sqrt(.5*this.qp),this.dd=1/this.rq,this.xmf=1,this.ymf=.5*this.qp;break;case this.OBLIQ:this.rq=Math.sqrt(.5*this.qp),t=Math.sin(this.lat0),this.sinb1=Tr(this.e,t)/this.qp,this.cosb1=Math.sqrt(1-this.sinb1*this.sinb1),this.dd=Math.cos(this.lat0)/(Math.sqrt(1-this.es*t*t)*this.rq*this.cosb1),this.ymf=(this.xmf=this.rq)/this.dd,this.xmf*=this.dd;break}else this.mode===this.OBLIQ&&(this.sinph0=Math.sin(this.lat0),this.cosph0=Math.cos(this.lat0))}function jr(t){var e,n,r,i,o,s,a,l,u,h,c=t.x,f=t.y;if(c=ht(c-this.long0),this.sphere){if(o=Math.sin(f),h=Math.cos(f),r=Math.cos(c),this.mode===this.OBLIQ||this.mode===this.EQUIT){if(n=this.mode===this.EQUIT?1+h*r:1+this.sinph0*o+this.cosph0*h*r,n<=y)return null;n=Math.sqrt(2/n),e=n*h*Math.sin(c),n*=this.mode===this.EQUIT?o:this.cosph0*o-this.sinph0*h*r}else if(this.mode===this.N_POLE||this.mode===this.S_POLE){if(this.mode===this.N_POLE&&(r=-r),Math.abs(f+this.lat0)=0?(e=(u=Math.sqrt(s))*i,n=r*(this.mode===this.S_POLE?u:-u)):e=n=0;break}}return t.x=this.a*e+this.x0,t.y=this.a*n+this.y0,t}function Nr(t){t.x-=this.x0,t.y-=this.y0;var e,n,r,i,o,s,a,l=t.x/this.a,u=t.y/this.a;if(this.sphere){var h,c=0,f=0;if(h=Math.sqrt(l*l+u*u),n=.5*h,n>1)return null;switch(n=2*Math.asin(n),this.mode!==this.OBLIQ&&this.mode!==this.EQUIT||(f=Math.sin(n),c=Math.cos(n)),this.mode){case this.EQUIT:n=Math.abs(h)<=y?0:Math.asin(u*f/h),l*=f,u=c*h;break;case this.OBLIQ:n=Math.abs(h)<=y?this.lat0:Math.asin(c*this.sinph0+u*f*this.cosph0/h),l*=f*this.cosph0,u=(c-Math.sin(n)*this.sinph0)*h;break;case this.N_POLE:u=-u,n=d-n;break;case this.S_POLE:n-=d;break}e=0!==u||this.mode!==this.EQUIT&&this.mode!==this.OBLIQ?Math.atan2(l,u):0}else{if(a=0,this.mode===this.OBLIQ||this.mode===this.EQUIT){if(l/=this.dd,u*=this.dd,s=Math.sqrt(l*l+u*u),s1&&(t=t>1?1:-1),Math.asin(t)}function Qr(){Math.abs(this.lat1+this.lat2)y?this.ns0=(this.ms1*this.ms1-this.ms2*this.ms2)/(this.qs2-this.qs1):this.ns0=this.con,this.c=this.ms1*this.ms1+this.ns0*this.qs1,this.rh=this.a*Math.sqrt(this.c-this.ns0*this.qs0)/this.ns0)}function Kr(t){var e=t.x,n=t.y;this.sin_phi=Math.sin(n),this.cos_phi=Math.cos(n);var r=Tr(this.e3,this.sin_phi),i=this.a*Math.sqrt(this.c-this.ns0*r)/this.ns0,o=this.ns0*ht(e-this.long0),s=i*Math.sin(o)+this.x0,a=this.rh-i*Math.cos(o)+this.y0;return t.x=s,t.y=a,t}function Yr(t){var e,n,r,i,o,s;return t.x-=this.x0,t.y=this.rh-t.y+this.y0,this.ns0>=0?(e=Math.sqrt(t.x*t.x+t.y*t.y),r=1):(e=-Math.sqrt(t.x*t.x+t.y*t.y),r=-1),i=0,0!==e&&(i=Math.atan2(r*t.x,r*t.y)),r=e*this.ns0/this.a,this.sphere?s=Math.asin((this.c-r*r)/(2*this.ns0)):(n=(this.c-r*r)/this.ns0,s=this.phi1z(this.e3,n)),o=ht(i/this.ns0+this.long0),t.x=o,t.y=s,t}function Xr(t,e){var n,r,i,o,s,a=Vr(.5*e);if(t0||Math.abs(s)<=y?(a=this.x0+this.a*o*n*Math.sin(r)/s,l=this.y0+this.a*o*(this.cos_p14*e-this.sin_p14*n*i)/s):(a=this.x0+this.infinity_dist*n*Math.sin(r),l=this.y0+this.infinity_dist*(this.cos_p14*e-this.sin_p14*n*i)),t.x=a,t.y=l,t}function ni(t){var e,n,r,i,o,s;return t.x=(t.x-this.x0)/this.a,t.y=(t.y-this.y0)/this.a,t.x/=this.k0,t.y/=this.k0,(e=Math.sqrt(t.x*t.x+t.y*t.y))?(i=Math.atan2(e,this.rc),n=Math.sin(i),r=Math.cos(i),s=Vr(r*this.sin_p14+t.y*n*this.cos_p14/e),o=Math.atan2(t.x*n,e*this.cos_p14*r-t.y*this.sin_p14*n),o=ht(this.long0+o)):(s=this.phic0,o=0),t.x=o,t.y=s,t}var ri=["gnom"],ii={init:ti,forward:ei,inverse:ni,names:ri};function oi(t,e){var n=1-(1-t*t)/(2*t)*Math.log((1-t)/(1+t));if(Math.abs(Math.abs(e)-n)<1e-6)return e<0?-1*d:d;for(var r,i,o,s,a=Math.asin(.5*e),l=0;l<30;l++)if(i=Math.sin(a),o=Math.cos(a),s=t*i,r=Math.pow(1-s*s,2)/(2*o)*(e/(1-t*t)-i/(1-s*s)+.5/t*Math.log((1-s)/(1+s))),a+=r,Math.abs(r)<=1e-10)return a;return NaN}function si(){this.sphere||(this.k0=lt(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts)))}function ai(t){var e,n,r=t.x,i=t.y,o=ht(r-this.long0);if(this.sphere)e=this.x0+this.a*o*Math.cos(this.lat_ts),n=this.y0+this.a*Math.sin(i)/Math.cos(this.lat_ts);else{var s=Tr(this.e,Math.sin(i));e=this.x0+this.a*this.k0*o,n=this.y0+this.a*s*.5/this.k0}return t.x=e,t.y=n,t}function li(t){var e,n;return t.x-=this.x0,t.y-=this.y0,this.sphere?(e=ht(this.long0+t.x/this.a/Math.cos(this.lat_ts)),n=Math.asin(t.y/this.a*Math.cos(this.lat_ts))):(n=oi(this.e,2*t.y*this.k0/this.a),e=ht(this.long0+t.x/(this.a*this.k0))),t.x=e,t.y=n,t}var ui=["cea"],hi={init:si,forward:ai,inverse:li,names:ui};function ci(){this.x0=this.x0||0,this.y0=this.y0||0,this.lat0=this.lat0||0,this.long0=this.long0||0,this.lat_ts=this.lat_ts||0,this.title=this.title||"Equidistant Cylindrical (Plate Carre)",this.rc=Math.cos(this.lat_ts)}function fi(t){var e=t.x,n=t.y,r=ht(e-this.long0),i=xr(n-this.lat0);return t.x=this.x0+this.a*r*this.rc,t.y=this.y0+this.a*i,t}function di(t){var e=t.x,n=t.y;return t.x=ht(this.long0+(e-this.x0)/(this.a*this.rc)),t.y=xr(this.lat0+(n-this.y0)/this.a),t}var pi=["Equirectangular","Equidistant_Cylindrical","eqc"],mi={init:ci,forward:fi,inverse:di,names:pi},gi=20;function yi(){this.temp=this.b/this.a,this.es=1-Math.pow(this.temp,2),this.e=Math.sqrt(this.es),this.e0=yr(this.es),this.e1=_r(this.es),this.e2=vr(this.es),this.e3=br(this.es),this.ml0=this.a*gr(this.e0,this.e1,this.e2,this.e3,this.lat0)}function _i(t){var e,n,r,i=t.x,o=t.y,s=ht(i-this.long0);if(r=s*Math.sin(o),this.sphere)Math.abs(o)<=y?(e=this.a*s,n=-1*this.a*this.lat0):(e=this.a*Math.sin(r)/Math.tan(o),n=this.a*(xr(o-this.lat0)+(1-Math.cos(r))/Math.tan(o)));else if(Math.abs(o)<=y)e=this.a*s,n=-1*this.ml0;else{var a=wr(this.a,this.e,Math.sin(o))/Math.tan(o);e=a*Math.sin(r),n=this.a*gr(this.e0,this.e1,this.e2,this.e3,o)-this.ml0+a*(1-Math.cos(r))}return t.x=e+this.x0,t.y=n+this.y0,t}function vi(t){var e,n,r,i,o,s,a,l,u;if(r=t.x-this.x0,i=t.y-this.y0,this.sphere)if(Math.abs(i+this.a*this.lat0)<=y)e=ht(r/this.a+this.long0),n=0;else{var h;for(s=this.lat0+i/this.a,a=r*r/this.a/this.a+s*s,l=s,o=gi;o;--o)if(h=Math.tan(l),u=-1*(s*(l*h+1)-l-.5*(l*l+a)*h)/((l-s)/h-1),l+=u,Math.abs(u)<=y){n=l;break}e=ht(this.long0+Math.asin(r*Math.tan(l)/this.a)/Math.sin(n))}else if(Math.abs(i+this.ml0)<=y)n=0,e=ht(this.long0+r/this.a);else{var c,f,d,p,m;for(s=(this.ml0+i)/this.a,a=r*r/this.a/this.a+s*s,l=s,o=gi;o;--o)if(m=this.e*Math.sin(l),c=Math.sqrt(1-m*m)*Math.tan(l),f=this.a*gr(this.e0,this.e1,this.e2,this.e3,l),d=this.e0-2*this.e1*Math.cos(2*l)+4*this.e2*Math.cos(4*l)-6*this.e3*Math.cos(6*l),p=f/this.a,u=(s*(c*p+1)-p-.5*c*(p*p+a))/(this.es*Math.sin(2*l)*(p*p+a-2*s*p)/(4*c)+(s-p)*(c*d-2/Math.sin(2*l))-d),l-=u,Math.abs(u)<=y){n=l;break}c=Math.sqrt(1-this.es*Math.pow(Math.sin(n),2))*Math.tan(n),e=ht(this.long0+Math.asin(r*c/this.a)/Math.sin(n))}return t.x=e,t.y=n,t}var bi=["Polyconic","poly"],wi={init:yi,forward:_i,inverse:vi,names:bi};function xi(){this.A=[],this.A[1]=.6399175073,this.A[2]=-.1358797613,this.A[3]=.063294409,this.A[4]=-.02526853,this.A[5]=.0117879,this.A[6]=-.0055161,this.A[7]=.0026906,this.A[8]=-.001333,this.A[9]=67e-5,this.A[10]=-34e-5,this.B_re=[],this.B_im=[],this.B_re[1]=.7557853228,this.B_im[1]=0,this.B_re[2]=.249204646,this.B_im[2]=.003371507,this.B_re[3]=-.001541739,this.B_im[3]=.04105856,this.B_re[4]=-.10162907,this.B_im[4]=.01727609,this.B_re[5]=-.26623489,this.B_im[5]=-.36249218,this.B_re[6]=-.6870983,this.B_im[6]=-1.1651967,this.C_re=[],this.C_im=[],this.C_re[1]=1.3231270439,this.C_im[1]=0,this.C_re[2]=-.577245789,this.C_im[2]=-.007809598,this.C_re[3]=.508307513,this.C_im[3]=-.112208952,this.C_re[4]=-.15094762,this.C_im[4]=.18200602,this.C_re[5]=1.01418179,this.C_im[5]=1.64497696,this.C_re[6]=1.9660549,this.C_im[6]=2.5127645,this.D=[],this.D[1]=1.5627014243,this.D[2]=.5185406398,this.D[3]=-.03333098,this.D[4]=-.1052906,this.D[5]=-.0368594,this.D[6]=.007317,this.D[7]=.0122,this.D[8]=.00394,this.D[9]=-.0013}function ki(t){var e,n=t.x,r=t.y,i=r-this.lat0,o=n-this.long0,s=i/f*1e-5,a=o,l=1,u=0;for(e=1;e<=10;e++)l*=s,u+=this.A[e]*l;var h,c,d=u,p=a,m=1,g=0,y=0,_=0;for(e=1;e<=6;e++)h=m*d-g*p,c=g*d+m*p,m=h,g=c,y=y+this.B_re[e]*m-this.B_im[e]*g,_=_+this.B_im[e]*m+this.B_re[e]*g;return t.x=_*this.a+this.x0,t.y=y*this.a+this.y0,t}function Si(t){var e,n,r,i=t.x,o=t.y,s=i-this.x0,a=o-this.y0,l=a/this.a,u=s/this.a,h=1,c=0,d=0,p=0;for(e=1;e<=6;e++)n=h*l-c*u,r=c*l+h*u,h=n,c=r,d=d+this.C_re[e]*h-this.C_im[e]*c,p=p+this.C_im[e]*h+this.C_re[e]*c;for(var m=0;m.999999999999&&(n=.999999999999),e=Math.asin(n);var r=ht(this.long0+t.x/(.900316316158*this.a*Math.cos(e)));r<-Math.PI&&(r=-Math.PI),r>Math.PI&&(r=Math.PI),n=(2*e+Math.sin(2*e))/Math.PI,Math.abs(n)>1&&(n=1);var i=Math.asin(n);return t.x=r,t.y=i,t}var Gi=["Mollweide","moll"],zi={init:Di,forward:Fi,inverse:Ui,names:Gi};function Hi(){Math.abs(this.lat1+this.lat2)=0?(n=Math.sqrt(t.x*t.x+t.y*t.y),e=1):(n=-Math.sqrt(t.x*t.x+t.y*t.y),e=-1);var o=0;if(0!==n&&(o=Math.atan2(e*t.x,e*t.y)),this.sphere)return i=ht(this.long0+o/this.ns),r=xr(this.g-n/this.a),t.x=i,t.y=r,t;var s=this.g-n/this.a;return r=kr(s,this.e0,this.e1,this.e2,this.e3),i=ht(this.long0+o/this.ns),t.x=i,t.y=r,t}var Wi=["Equidistant_Conic","eqdc"],Vi={init:Hi,forward:qi,inverse:Zi,names:Wi};function Qi(){this.R=this.a}function Ki(t){var e,n,r=t.x,i=t.y,o=ht(r-this.long0);Math.abs(i)<=y&&(e=this.x0+this.R*o,n=this.y0);var s=Vr(2*Math.abs(i/Math.PI));(Math.abs(o)<=y||Math.abs(Math.abs(i)-d)<=y)&&(e=this.x0,n=i>=0?this.y0+Math.PI*this.R*Math.tan(.5*s):this.y0+Math.PI*this.R*-Math.tan(.5*s));var a=.5*Math.abs(Math.PI/o-o/Math.PI),l=a*a,u=Math.sin(s),h=Math.cos(s),c=h/(u+h-1),f=c*c,p=c*(2/u-1),m=p*p,g=Math.PI*this.R*(a*(c-m)+Math.sqrt(l*(c-m)*(c-m)-(m+l)*(f-m)))/(m+l);o<0&&(g=-g),e=this.x0+g;var _=l+c;return g=Math.PI*this.R*(p*_-a*Math.sqrt((m+l)*(l+1)-_*_))/(m+l),n=i>=0?this.y0+g:this.y0-g,t.x=e,t.y=n,t}function Yi(t){var e,n,r,i,o,s,a,l,u,h,c,f,d;return t.x-=this.x0,t.y-=this.y0,c=Math.PI*this.R,r=t.x/c,i=t.y/c,o=r*r+i*i,s=-Math.abs(i)*(1+o),a=s-2*i*i+r*r,l=-2*s+1+2*i*i+o*o,d=i*i/l+(2*a*a*a/l/l/l-9*s*a/l/l)/27,u=(s-a*a/3/l)/l,h=2*Math.sqrt(-u/3),c=3*d/u/h,Math.abs(c)>1&&(c=c>=0?1:-1),f=Math.acos(c)/3,n=t.y>=0?(-h*Math.cos(f+Math.PI/3)-a/3/l)*Math.PI:-(-h*Math.cos(f+Math.PI/3)-a/3/l)*Math.PI,e=Math.abs(r)2*d*this.a)return;return n=e/this.a,r=Math.sin(n),i=Math.cos(n),o=this.long0,Math.abs(e)<=y?s=this.lat0:(s=Vr(i*this.sin_p12+t.y*r*this.cos_p12/e),a=Math.abs(this.lat0)-d,o=Math.abs(a)<=y?this.lat0>=0?ht(this.long0+Math.atan2(t.x,-t.y)):ht(this.long0-Math.atan2(-t.x,t.y)):ht(this.long0+Math.atan2(t.x*r,e*this.cos_p12*i-t.y*this.sin_p12*r))),t.x=o,t.y=s,t}return l=yr(this.es),u=_r(this.es),h=vr(this.es),c=br(this.es),Math.abs(this.sin_p12-1)<=y?(f=this.a*gr(l,u,h,c,d),e=Math.sqrt(t.x*t.x+t.y*t.y),p=f-e,s=kr(p/this.a,l,u,h,c),o=ht(this.long0+Math.atan2(t.x,-1*t.y)),t.x=o,t.y=s,t):Math.abs(this.sin_p12+1)<=y?(f=this.a*gr(l,u,h,c,d),e=Math.sqrt(t.x*t.x+t.y*t.y),p=e-f,s=kr(p/this.a,l,u,h,c),o=ht(this.long0+Math.atan2(t.x,t.y)),t.x=o,t.y=s,t):(e=Math.sqrt(t.x*t.x+t.y*t.y),_=Math.atan2(t.x,t.y),m=wr(this.a,this.e,this.sin_p12),v=Math.cos(_),b=this.e*this.cos_p12*v,w=-b*b/(1-this.es),x=3*this.es*(1-w)*this.sin_p12*this.cos_p12*v/(1-this.es),k=e/m,S=k-w*(1+w)*Math.pow(k,3)/6-x*(1+3*w)*Math.pow(k,4)/24,M=1-w*S*S/2-k*S*S*S/6,g=Math.asin(this.sin_p12*Math.cos(S)+this.cos_p12*Math.sin(S)*v),o=ht(this.long0+Math.asin(Math.sin(_)*Math.sin(S)/Math.cos(g))),A=Math.sin(g),s=Math.atan2((A-this.es*M*this.sin_p12)*Math.tan(g),A*(1-this.es)),t.x=o,t.y=s,t)}var no=["Azimuthal_Equidistant","aeqd"],ro={init:$i,forward:to,inverse:eo,names:no};function io(){this.sin_p14=Math.sin(this.lat0),this.cos_p14=Math.cos(this.lat0)}function oo(t){var e,n,r,i,o,s,a,l,u=t.x,h=t.y;return r=ht(u-this.long0),e=Math.sin(h),n=Math.cos(h),i=Math.cos(r),s=this.sin_p14*e+this.cos_p14*n*i,o=1,(s>0||Math.abs(s)<=y)&&(a=this.a*o*n*Math.sin(r),l=this.y0+this.a*o*(this.cos_p14*e-this.sin_p14*n*i)),t.x=a,t.y=l,t}function so(t){var e,n,r,i,o,s,a;return t.x-=this.x0,t.y-=this.y0,e=Math.sqrt(t.x*t.x+t.y*t.y),n=Vr(e/this.a),r=Math.sin(n),i=Math.cos(n),s=this.long0,Math.abs(e)<=y?(a=this.lat0,t.x=s,t.y=a,t):(a=Vr(i*this.sin_p14+t.y*r*this.cos_p14/e),o=Math.abs(this.lat0)-d,Math.abs(o)<=y?(s=this.lat0>=0?ht(this.long0+Math.atan2(t.x,-t.y)):ht(this.long0-Math.atan2(-t.x,t.y)),t.x=s,t.y=a,t):(s=ht(this.long0+Math.atan2(t.x*r,e*this.cos_p14*i-t.y*this.sin_p14*r)),t.x=s,t.y=a,t))}var ao=["ortho"],lo={init:io,forward:oo,inverse:so,names:ao},uo={FRONT:1,RIGHT:2,BACK:3,LEFT:4,TOP:5,BOTTOM:6},ho={AREA_0:1,AREA_1:2,AREA_2:3,AREA_3:4};function co(){this.x0=this.x0||0,this.y0=this.y0||0,this.lat0=this.lat0||0,this.long0=this.long0||0,this.lat_ts=this.lat_ts||0,this.title=this.title||"Quadrilateralized Spherical Cube",this.lat0>=d-b/2?this.face=uo.TOP:this.lat0<=-(d-b/2)?this.face=uo.BOTTOM:Math.abs(this.long0)<=b?this.face=uo.FRONT:Math.abs(this.long0)<=d+b?this.face=this.long0>0?uo.RIGHT:uo.LEFT:this.face=uo.BACK,0!==this.es&&(this.one_minus_f=1-(this.a-this.b)/this.a,this.one_minus_f_squared=this.one_minus_f*this.one_minus_f)}function fo(t){var e,n,r,i,o,s,a={x:0,y:0},l={value:0};if(t.x-=this.long0,e=0!==this.es?Math.atan(this.one_minus_f_squared*Math.tan(t.y)):t.y,n=t.x,this.face===uo.TOP)i=d-e,n>=b&&n<=d+b?(l.value=ho.AREA_0,r=n-d):n>d+b||n<=-(d+b)?(l.value=ho.AREA_1,r=n>0?n-x:n+x):n>-(d+b)&&n<=-b?(l.value=ho.AREA_2,r=n+d):(l.value=ho.AREA_3,r=n);else if(this.face===uo.BOTTOM)i=d+e,n>=b&&n<=d+b?(l.value=ho.AREA_0,r=-n+d):n=-b?(l.value=ho.AREA_1,r=-n):n<-b&&n>=-(d+b)?(l.value=ho.AREA_2,r=-n-d):(l.value=ho.AREA_3,r=n>0?-n+x:-n-x);else{var u,h,c,f,p,m,g;this.face===uo.RIGHT?n=go(n,+d):this.face===uo.BACK?n=go(n,+x):this.face===uo.LEFT&&(n=go(n,-d)),f=Math.sin(e),p=Math.cos(e),m=Math.sin(n),g=Math.cos(n),u=p*g,h=p*m,c=f,this.face===uo.FRONT?(i=Math.acos(u),r=mo(i,c,h,l)):this.face===uo.RIGHT?(i=Math.acos(h),r=mo(i,c,-u,l)):this.face===uo.BACK?(i=Math.acos(-u),r=mo(i,c,-h,l)):this.face===uo.LEFT?(i=Math.acos(-h),r=mo(i,c,u,l)):(i=r=0,l.value=ho.AREA_0)}return s=Math.atan(12/x*(r+Math.acos(Math.sin(r)*Math.cos(b))-d)),o=Math.sqrt((1-Math.cos(i))/(Math.cos(s)*Math.cos(s))/(1-Math.cos(Math.atan(1/Math.cos(r))))),l.value===ho.AREA_1?s+=d:l.value===ho.AREA_2?s+=x:l.value===ho.AREA_3&&(s+=1.5*x),a.x=o*Math.cos(s),a.y=o*Math.sin(s),a.x=a.x*this.a+this.x0,a.y=a.y*this.a+this.y0,t.x=a.x,t.y=a.y,t}function po(t){var e,n,r,i,o,s,a,l,u,h,c,f,p={lam:0,phi:0},m={value:0};if(t.x=(t.x-this.x0)/this.a,t.y=(t.y-this.y0)/this.a,n=Math.atan(Math.sqrt(t.x*t.x+t.y*t.y)),e=Math.atan2(t.y,t.x),t.x>=0&&t.x>=Math.abs(t.y)?m.value=ho.AREA_0:t.y>=0&&t.y>=Math.abs(t.x)?(m.value=ho.AREA_1,e-=d):t.x<0&&-t.x>=Math.abs(t.y)?(m.value=ho.AREA_2,e=e<0?e+x:e-x):(m.value=ho.AREA_3,e+=d),u=x/12*Math.tan(e),o=Math.sin(u)/(Math.cos(u)-1/Math.sqrt(2)),s=Math.atan(o),r=Math.cos(e),i=Math.tan(n),a=1-r*r*i*i*(1-Math.cos(Math.atan(1/Math.cos(s)))),a<-1?a=-1:a>1&&(a=1),this.face===uo.TOP)l=Math.acos(a),p.phi=d-l,m.value===ho.AREA_0?p.lam=s+d:m.value===ho.AREA_1?p.lam=s<0?s+x:s-x:m.value===ho.AREA_2?p.lam=s-d:p.lam=s;else if(this.face===uo.BOTTOM)l=Math.acos(a),p.phi=l-d,m.value===ho.AREA_0?p.lam=-s+d:m.value===ho.AREA_1?p.lam=-s:m.value===ho.AREA_2?p.lam=-s-d:p.lam=s<0?-s-x:-s+x;else{var g,y,_;g=a,u=g*g,_=u>=1?0:Math.sqrt(1-u)*Math.sin(s),u+=_*_,y=u>=1?0:Math.sqrt(1-u),m.value===ho.AREA_1?(u=y,y=-_,_=u):m.value===ho.AREA_2?(y=-y,_=-_):m.value===ho.AREA_3&&(u=y,y=_,_=-u),this.face===uo.RIGHT?(u=g,g=-y,y=u):this.face===uo.BACK?(g=-g,y=-y):this.face===uo.LEFT&&(u=g,g=y,y=-u),p.phi=Math.acos(-_)-d,p.lam=Math.atan2(y,g),this.face===uo.RIGHT?p.lam=go(p.lam,-d):this.face===uo.BACK?p.lam=go(p.lam,-x):this.face===uo.LEFT&&(p.lam=go(p.lam,+d))}0!==this.es&&(h=p.phi<0?1:0,c=Math.tan(p.phi),f=this.b/Math.sqrt(c*c+this.one_minus_f_squared),p.phi=Math.atan(Math.sqrt(this.a*this.a-f*f)/(this.one_minus_f*f)),h&&(p.phi=-p.phi));return p.lam+=this.long0,t.x=p.lam,t.y=p.phi,t}function mo(t,e,n,r){var i;return tb&&i<=d+b?(r.value=ho.AREA_1,i-=d):i>d+b||i<=-(d+b)?(r.value=ho.AREA_2,i=i>=0?i-x:i+x):(r.value=ho.AREA_3,i+=d)),i}function go(t,e){var n=t+e;return n<-x?n+=w:n>+x&&(n-=w),n}var yo=["Quadrilateralized Spherical Cube","Quadrilateralized_Spherical_Cube","qsc"],_o={init:co,forward:fo,inverse:po,names:yo},vo=[[1,22199e-21,-715515e-10,31103e-10],[.9986,-482243e-9,-24897e-9,-13309e-10],[.9954,-83103e-8,-448605e-10,-9.86701e-7],[.99,-.00135364,-59661e-9,36777e-10],[.9822,-.00167442,-449547e-11,-572411e-11],[.973,-.00214868,-903571e-10,1.8736e-8],[.96,-.00305085,-900761e-10,164917e-11],[.9427,-.00382792,-653386e-10,-26154e-10],[.9216,-.00467746,-10457e-8,481243e-11],[.8962,-.00536223,-323831e-10,-543432e-11],[.8679,-.00609363,-113898e-9,332484e-11],[.835,-.00698325,-640253e-10,9.34959e-7],[.7986,-.00755338,-500009e-10,9.35324e-7],[.7597,-.00798324,-35971e-9,-227626e-11],[.7186,-.00851367,-701149e-10,-86303e-10],[.6732,-.00986209,-199569e-9,191974e-10],[.6213,-.010418,883923e-10,624051e-11],[.5722,-.00906601,182e-6,624051e-11],[.5322,-.00677797,275608e-9,624051e-11]],bo=[[-520417e-23,.0124,121431e-23,-845284e-16],[.062,.0124,-1.26793e-9,4.22642e-10],[.124,.0124,5.07171e-9,-1.60604e-9],[.186,.0123999,-1.90189e-8,6.00152e-9],[.248,.0124002,7.10039e-8,-2.24e-8],[.31,.0123992,-2.64997e-7,8.35986e-8],[.372,.0124029,9.88983e-7,-3.11994e-7],[.434,.0123893,-369093e-11,-4.35621e-7],[.4958,.0123198,-102252e-10,-3.45523e-7],[.5571,.0121916,-154081e-10,-5.82288e-7],[.6176,.0119938,-241424e-10,-5.25327e-7],[.6769,.011713,-320223e-10,-5.16405e-7],[.7346,.0113541,-397684e-10,-6.09052e-7],[.7903,.0109107,-489042e-10,-104739e-11],[.8435,.0103431,-64615e-9,-1.40374e-9],[.8936,.00969686,-64636e-9,-8547e-9],[.9394,.00840947,-192841e-9,-42106e-10],[.9761,.00616527,-256e-6,-42106e-10],[1,.00328947,-319159e-9,-42106e-10]],wo=.8487,xo=1.3523,ko=v/5,So=1/ko,Mo=18,Ao=function(t,e){return t[0]+e*(t[1]+e*(t[2]+e*t[3]))},Eo=function(t,e){return t[1]+e*(2*t[2]+3*e*t[3])};function Co(t,e,n,r){for(var i=e;r;--r){var o=t(i);if(i-=o,Math.abs(o)=Mo&&(r=Mo-1),n=v*(n-So*r);var i={x:Ao(vo[r],n)*e,y:Ao(bo[r],n)};return t.y<0&&(i.y=-i.y),i.x=i.x*this.a*wo+this.x0,i.y=i.y*this.a*xo+this.y0,i}function Po(t){var e={x:(t.x-this.x0)/(this.a*wo),y:Math.abs(t.y-this.y0)/(this.a*xo)};if(e.y>=1)e.x/=vo[Mo][0],e.y=t.y<0?-d:d;else{var n=Math.floor(e.y*Mo);for(n<0?n=0:n>=Mo&&(n=Mo-1);;)if(bo[n][0]>e.y)--n;else{if(!(bo[n+1][0]<=e.y))break;++n}var r=bo[n],i=5*(e.y-r[0])/(bo[n+1][0]-r[0]);i=Co((function(t){return(Ao(r,t)-e.y)/Eo(r,t)}),i,y,100),e.x/=Ao(vo[n],i),e.y=(5*n+i)*_,t.y<0&&(e.y=-e.y)}return e.x=ht(e.x+this.long0),e}var Lo=["Robinson","robin"],Io={init:To,forward:Oo,inverse:Po,names:Lo};function Ro(){this.name="geocent"}function jo(t){var e=Xt(t,this.es,this.a);return e}function No(t){var e=Jt(t,this.es,this.a,this.b);return e}var Bo=["Geocentric","geocentric","geocent","Geocent"],Do={init:Ro,forward:jo,inverse:No,names:Bo},Fo={N_POLE:0,S_POLE:1,EQUIT:2,OBLIQ:3},Uo={h:{def:1e5,num:!0},azi:{def:0,num:!0,degrees:!0},tilt:{def:0,num:!0,degrees:!0},long0:{def:0,num:!0},lat0:{def:0,num:!0}};function Go(){if(Object.keys(Uo).forEach(function(t){if("undefined"===typeof this[t])this[t]=Uo[t].def;else{if(Uo[t].num&&isNaN(this[t]))throw new Error("Invalid parameter value, must be numeric "+t+" = "+this[t]);Uo[t].num&&(this[t]=parseFloat(this[t]))}Uo[t].degrees&&(this[t]=this[t]*_)}.bind(this)),Math.abs(Math.abs(this.lat0)-d)1e10)throw new Error("Invalid height");this.p=1+this.pn1,this.rp=1/this.p,this.h1=1/this.pn1,this.pfact=(this.p+1)*this.h1,this.es=0;var t=this.tilt,e=this.azi;this.cg=Math.cos(e),this.sg=Math.sin(e),this.cw=Math.cos(t),this.sw=Math.sin(t)}function zo(t){t.x-=this.long0;var e,n,r,i,o=Math.sin(t.y),s=Math.cos(t.y),a=Math.cos(t.x);switch(this.mode){case Fo.OBLIQ:n=this.sinph0*o+this.cosph0*s*a;break;case Fo.EQUIT:n=s*a;break;case Fo.S_POLE:n=-o;break;case Fo.N_POLE:n=o;break}switch(n=this.pn1/(this.p-n),e=n*s*Math.sin(t.x),this.mode){case Fo.OBLIQ:n*=this.cosph0*o-this.sinph0*s*a;break;case Fo.EQUIT:n*=o;break;case Fo.N_POLE:n*=-s*a;break;case Fo.S_POLE:n*=s*a;break}return r=n*this.cg+e*this.sg,i=1/(r*this.sw*this.h1+this.cw),e=(e*this.cg-n*this.sg)*this.cw*i,n=r*i,t.x=e*this.a,t.y=n*this.a,t}function Ho(t){t.x/=this.a,t.y/=this.a;var e,n,r,i={x:t.x,y:t.y};r=1/(this.pn1-t.y*this.sw),e=this.pn1*t.x*r,n=this.pn1*t.y*this.cw*r,t.x=e*this.cg+n*this.sg,t.y=n*this.cg-e*this.sg;var o=dn(t.x,t.y);if(Math.abs(o)1e10)throw new Error;if(this.radius_g=1+this.radius_g_1,this.C=this.radius_g*this.radius_g-1,0!==this.es){var t=1-this.es,e=1/t;this.radius_p=Math.sqrt(t),this.radius_p2=t,this.radius_p_inv2=e,this.shape="ellipse"}else this.radius_p=1,this.radius_p2=1,this.radius_p_inv2=1,this.shape="sphere";this.title||(this.title="Geostationary Satellite View")}function Vo(t){var e,n,r,i,o=t.x,s=t.y;if(o-=this.long0,"ellipse"===this.shape){s=Math.atan(this.radius_p2*Math.tan(s));var a=this.radius_p/dn(this.radius_p*Math.cos(s),Math.sin(s));if(n=a*Math.cos(o)*Math.cos(s),r=a*Math.sin(o)*Math.cos(s),i=a*Math.sin(s),(this.radius_g-n)*n-r*r-i*i*this.radius_p_inv2<0)return t.x=Number.NaN,t.y=Number.NaN,t;e=this.radius_g-n,this.flip_axis?(t.x=this.radius_g_1*Math.atan(r/dn(i,e)),t.y=this.radius_g_1*Math.atan(i/e)):(t.x=this.radius_g_1*Math.atan(r/e),t.y=this.radius_g_1*Math.atan(i/dn(r,e)))}else"sphere"===this.shape&&(e=Math.cos(s),n=Math.cos(o)*e,r=Math.sin(o)*e,i=Math.sin(s),e=this.radius_g-n,this.flip_axis?(t.x=this.radius_g_1*Math.atan(r/dn(i,e)),t.y=this.radius_g_1*Math.atan(i/e)):(t.x=this.radius_g_1*Math.atan(r/e),t.y=this.radius_g_1*Math.atan(i/dn(r,e))));return t.x=t.x*this.a,t.y=t.y*this.a,t}function Qo(t){var e,n,r,i,o=-1,s=0,a=0;if(t.x=t.x/this.a,t.y=t.y/this.a,"ellipse"===this.shape){this.flip_axis?(a=Math.tan(t.y/this.radius_g_1),s=Math.tan(t.x/this.radius_g_1)*dn(1,a)):(s=Math.tan(t.x/this.radius_g_1),a=Math.tan(t.y/this.radius_g_1)*dn(1,s));var l=a/this.radius_p;if(e=s*s+l*l+o*o,n=2*this.radius_g*o,r=n*n-4*e*this.C,r<0)return t.x=Number.NaN,t.y=Number.NaN,t;i=(-n-Math.sqrt(r))/(2*e),o=this.radius_g+i*o,s*=i,a*=i,t.x=Math.atan2(s,o),t.y=Math.atan(a*Math.cos(t.x)/o),t.y=Math.atan(this.radius_p_inv2*Math.tan(t.y))}else if("sphere"===this.shape){if(this.flip_axis?(a=Math.tan(t.y/this.radius_g_1),s=Math.tan(t.x/this.radius_g_1)*Math.sqrt(1+a*a)):(s=Math.tan(t.x/this.radius_g_1),a=Math.tan(t.y/this.radius_g_1)*Math.sqrt(1+s*s)),e=s*s+a*a+o*o,n=2*this.radius_g*o,r=n*n-4*e*this.C,r<0)return t.x=Number.NaN,t.y=Number.NaN,t;i=(-n-Math.sqrt(r))/(2*e),o=this.radius_g+i*o,s*=i,a*=i,t.x=Math.atan2(s,o),t.y=Math.atan(a*Math.cos(t.x)/o)}return t.x=t.x+this.long0,t}var Ko=["Geostationary Satellite View","Geostationary_Satellite","geos"],Yo={init:Wo,forward:Vo,inverse:Qo,names:Ko};function Xo(t){t.Proj.projections.add(cn),t.Proj.projections.add(Sn),t.Proj.projections.add(Tn),t.Proj.projections.add(Gn),t.Proj.projections.add(Vn),t.Proj.projections.add(Jn),t.Proj.projections.add(or),t.Proj.projections.add(hr),t.Proj.projections.add(mr),t.Proj.projections.add(Cr),t.Proj.projections.add(Wr),t.Proj.projections.add($r),t.Proj.projections.add(ii),t.Proj.projections.add(hi),t.Proj.projections.add(mi),t.Proj.projections.add(wi),t.Proj.projections.add(Ai),t.Proj.projections.add(Pi),t.Proj.projections.add(Bi),t.Proj.projections.add(zi),t.Proj.projections.add(Vi),t.Proj.projections.add(Ji),t.Proj.projections.add(ro),t.Proj.projections.add(lo),t.Proj.projections.add(_o),t.Proj.projections.add(Io),t.Proj.projections.add(Do),t.Proj.projections.add(Zo),t.Proj.projections.add(Yo)}ge.defaultDatum="WGS84",ge.Proj=Kt,ge.WGS84=new ge.Proj("WGS84"),ge.Point=He,ge.toPoint=ae,ge.defs=Y,ge.nadgrid=Bt,ge.transform=ce,ge.mgrs=Me,ge.version="__VERSION__",Xo(ge);var Jo=ge},38776:function(t){const e=" +no_defs",n=" +towgs84=0,0,0,0,0,0,0",r=" +ellps=GRS80",i="+proj=tmerc",o=" +units=m",s=" +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0.12",a=" +towgs84=24.47,-130.89,-81.56,-0,-0,0.13,-0.22",l="+proj=lcc",u="+proj=utm",h=" +units=us-ft",c="+proj=longlat",f=" +lat_0=0",d=" +ellps=krass",p=" +y_0=0",m=" +x_0=500000",g=" +towgs84=0,0,4.5,0,0,0.554,0.2263",y=" +towgs84=0,0,1.9,0,0,0.814,-0.38",_=" +ellps=intl",v=" +datum=WGS84",b=" +ellps=WGS72",w=" +towgs84=15.8,-154.4,-82.3,0,0,0,0",x=" +k=0.9999",k=" +towgs84=59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993",S=" +datum=NAD27",M=" +ellps=bessel",A=" +x_0=609601.2192024384",E=" +x_0=600000",C=" +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84",T=" +ellps=clrk80",O=" +b=6356755.288157528",P=" +x_0=152400.3048006096",L=" +lat_0=36.66666666666666",I=" +towgs84=-146.414,507.337,680.507,0,0,0,0",R=" +x_0=200000",j=" +ellps=clrk66",N=" +ellps=WGS84",B=" +x_0=500000.001016002",D=" +x_0=240000",F=" +lat_0=-90",U=" +towgs84=-87,-98,-121,0,0,0,0",G=" +south",z=" +lat_0=41.66666666666666",H=" +y_0=36000",q=" +towgs84=-117.808,-51.536,137.784,0.303,0.446,0.234,-0.29",Z=" +x_0=0",W=" +units=ft",V=" +x_0=400000",Q=" +towgs84=-115.854,-99.0583,-152.462,0,0,0,0",K=" +towgs84=-208.406,-109.878,-2.5764,0,0,0,0",Y=" +ellps=aust_SA",X=" +lat_0=39.33333333333334",J=" +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232",$=" +lat_0=37.66666666666666",tt=" +lat_0=36.33333333333334",et=" +towgs84=598.1,73.7,418.2,0.202,0.045,-2.455,6.7",nt=" +y_0=500000.0001016001",rt=" +x_0=200000.0001016002",it=" +x_0=500000.0001016001",ot=" +x_0=500000.00001016",st=" +y_0=1000000",at=" +x_0=300000",lt=" +lon_0=-120.5",ut=" +lat_0=43.66666666666666",ht=" +lat_0=43.83333333333334",ct=" +lat_1=-68.66666666666667",ft=" +lat_2=-71.33333333333333",dt=" +k=0.999966667",pt=" +k=0.9996",mt=" +lat_0=38.33333333333334",gt=" +lat_1=73.66666666666667",yt=" +lat_2=70.33333333333333",_t=" +lat_0=72.02500919444445",vt=" +a=6378249.2",bt=" +x_0=1500000",wt=" +lat_ts=-80.23861111111111",xt=" +towgs84=-288,175,-376,0,0,0,0",kt=" +lat_1=41.78333333333333",St=" +lat_2=-75.33333333333333",Mt=" +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21",At=" +x_0=304800",Et=" +x_0=2000000.0001016",Ct=" +k=0.9999375",Tt=" +y_0=500000",Ot=" +towgs84=-209.362,-87.8162,404.62,0.0046,3.4784,0.5805,-1.4547",Pt=" +lon_0=-100.3333333333333",Lt=" +lat_1=-72.66666666666667",It=" +lat_1=-76.66666666666667",Rt=" +lat_2=-79.33333333333333",jt=" +y_0=10000000",Nt=" +towgs84=-57,1,-41,0,0,0,0",Bt=" +k=0.999941177",Dt=" +x_0=800000.0000101599",Ft=" +y_0=99999.99998983997",Ut=" +lat_1=38.43333333333333",Gt=" +lat_0=24.33333333333333",zt=" +towgs84=26,-121,-78,0,0,0,0",Ht=" +a=6378140",qt=" +towgs84=-96.062,-82.428,-121.753,4.801,0.345,-1.376,1.496",Zt=" +x_0=399999.99998984",Wt=" +towgs84=-24,-15,5,0,0,0,0",Vt=" +towgs84=682,-203,480,0,0,0,0",Qt=" +towgs84=-136,-108,-292,0,0,0,0",Kt=" +b=6356075.41314024",Yt=" +lat_1=37.96666666666667",Xt=" +lat_0=38.83333333333334",Jt=" +lat_0=40.16666666666666",$t=" +lat_0=34.33333333333334",te=" +lat_0=42.83333333333334",ee=" +lon_0=-84.36666666666666",ne=" +x_0=300000.0000000001",re=" +k=0.999933333",ie=" +lat_1=48.73333333333333",oe=" +lon_0=-111.5",se=" +k=0.9999473679999999",ae=" +towgs84=-67.35,3.88,-38.22,0,0,0,0",le=" +lat_2=73.66666666666667",ue=" +lat_0=75.36440330555556",he=" +b=6356515",ce=" +towgs84=25,-141,-78.5,-0,0.35,0.736,0",fe="+proj=stere",de=" +lat_1=-64.66666666666667",pe=" +lat_2=-67.33333333333333",me=" +b=6356514.966398753",ge=" +towgs84=295,736,257,0,0,0,0",ye=" +x_0=100000",_e=" +towgs84=-11,851,5,0,0,0,0",ve=" +towgs84=414.1,41.3,603.1,-0.855,2.141,-7.023,0",be=" +towgs84=-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06",we=" +lat_0=39.66666666666666",xe=" +x_0=1000000",ke=" +lon_0=-105.5",Se=" +towgs84=482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15",Me=" +a=6378249.145",Ae=" +x_0=2000000",Ee=" +lat_0=45.66666666666666",Ce=" +lat_1=80.33333333333333",Te=" +lat_0=78.70733752777778",Oe=" +b=6356774.50408554",Pe=" +lon_0=-91.33333333333333",Le=" +lon_0=-123.3333333333333",Ie=" +towgs84=-168,-60,320,0,0,0,0",Re=" +lat_0=31",je=" +towgs84=0.072,-0.507,-0.245,-0.0183,0.0003,-0.007,-0.0093",Ne=" +x_0=150000",Be=" +x_0=3500000",De=" +towgs84=213.11,9.37,-74.95,0,0,0,0",Fe=" +lat_1=43.66666666666666",Ue=" +lat_0=40.33333333333334",Ge=" +towgs84=-148,136,90,0,0,0,0",ze=" +towgs84=616,97,-251,0,0,0,0",He=" +lon_0=-90",qe=" +x_0=250000",Ze=" +x_0=914401.8288036576",We=" +lon_0=-90.33333333333333",Ve=" +a=6377276.345",Qe=" +b=6356103.038993155",Ke=" +lat_0=40.5",Ye=" +towgs84=-134,-48,149,0,0,0,0",Xe=" +towgs84=25,-141,-78.5,0,0.35,0.736,0",Je=" +lat_1=27.83333333333333",$e=" +lat_2=26.16666666666667",tn=" +lat_2=40.71666666666667",en=" +lat_2=39.01666666666667",nn=" +lat_2=37.21666666666667",rn=" +lat_1=70.33333333333333",on=" +lat_0=68.68747555555557",sn=" +towgs84=-104.1,-49.1,-9.9,0.971,-2.917,0.714,-11.68",an=" +y_0=304800.6096012192",ln=" +x_0=699999.9998983998",un=" +y_0=999999.9998983998",hn=" +y_0=800000",cn=" +k=0.99995",fn=" +lat_0=34.75",dn=" +lon_0=-81",pn=" +lon_0=-100",mn=" +b=6356098.145120132",gn="+proj=omerc",yn=" +lon_0=-98.5",_n=" +towgs84=-103.746,-9.614,-255.95,0,0,0,0",vn=" +x_0=800000",bn=" +lat_0=37.83333333333334",wn=" +lat_2=44.33333333333334",xn=" +lat_2=42.33333333333334",kn=" +lat_0=29.66666666666667",Sn=" +lat_0=25.66666666666667",Mn=" +lat_0=35.83333333333334",An=" +lat_1=83.66666666666667",En=" +lat_2=80.33333333333333",Cn=" +lat_0=82.05842488888888",Tn=" +lat_0=38",On=" +x_0=2500000",Pn=" +towgs84=-377,681,-50,0,0,0,0",Ln="+proj=cass",In=" +y_0=2000000",Rn=" +towgs84=-143,-236,7,0,0,0,0",jn=" +lon_0=-110.1666666666667",Nn=" +lon_0=-111.9166666666667",Bn=" +lon_0=-75.41666666666667",Dn=" +lon_0=-82.16666666666667",Fn=" +lon_0=-84.16666666666667",Un=" +lon_0=-112.1666666666667",Gn=" +lon_0=-88.83333333333333",zn=" +lon_0=-104.3333333333333",Hn=" +lon_0=-107.8333333333333",qn=" +lon_0=-76.58333333333333",Zn=" +lon_0=-78.58333333333333",Wn=" +lon_0=-120.8333333333333",Vn=" +lon_0=-88.33333333333333",Qn=" +lon_0=-90.16666666666667",Kn=" +lon_0=-85.66666666666667",Yn=" +lon_0=-87.08333333333333",Xn=" +lon_0=-70.16666666666667",Jn=" +lon_0=-93.09999999999999",$n=" +lon_0=-115.5833333333333",tr=" +lon_0=-116.6666666666667",er=" +lon_0=-118.5833333333333",nr=" +lon_0=-71.66666666666667",rr=" +lon_0=-105.1666666666667",ir=" +lon_0=-107.3333333333333",or=" +lon_0=-110.0833333333333",sr=" +lat_0=37.5",ar=" +y_0=700000",lr=" +towgs84=-242.2,-144.9,370.3,0,0,0,0",ur=" +x_0=4500000",hr=" +y_0=1500000",cr=" +x_0=599999.9999976",fr=" +towgs84=-275.722,94.7824,340.894,-8.001,-4.42,-11.821,1",dr="+proj=aea",pr=" +y_0=-2500000",mr=" +lat_2=38.96666666666667",gr=" +lat_1=41.66666666666666",yr=" +lat_1=39.83333333333334",_r=" +lat_2=38.33333333333334",vr=" +lat_2=37.06666666666667",br=" +lat_0=35.33333333333334",wr=" +lat_1=35.46666666666667",xr=" +lat_2=34.03333333333333",kr=" +lat_1=33.88333333333333",Sr=" +lat_2=32.78333333333333",Mr=" +lat_0=32.16666666666666",Ar=" +lat_2=37.23333333333333",Er=" +lat_1=41.86666666666667",Cr=" +lat_0=40.83333333333334",Tr=" +lat_2=29.58333333333333",Or=" +lat_2=41.71666666666667",Pr=" +lat_1=41.03333333333333",Lr=" +lat_2=40.66666666666666",Ir=" +lat_1=36.76666666666667",Rr=" +lat_0=33.33333333333334",jr=" +lat_1=40.96666666666667",Nr=" +lat_2=39.93333333333333",Br=" +lat_0=31.83333333333333",Dr=" +lat_0=31.66666666666667",Fr=" +lat_0=27.83333333333333",Ur=" +lat_2=36.76666666666667",Gr=" +lat_0=45.33333333333334",zr=" +lat_0=45.16666666666666",Hr=" +lat_1=36.23333333333333",qr=" +lat_2=34.93333333333333",Zr=" +lat_1=34.76666666666667",Wr=" +lat_0=32.66666666666666",Vr=" +lat_1=43.26666666666667",Qr=" +lat_2=42.06666666666667",Kr=" +lat_2=40.61666666666667",Yr=" +lat_1=39.78333333333333",Xr=" +lat_2=38.71666666666667",Jr=" +lat_1=38.56666666666667",$r=" +lat_2=37.26666666666667",ti=" +lat_0=41.08333333333334",ei=" +lat_0=42.33333333333334",ni=" +y_0=100000",ri=" +b=6356173.508712696",ii=" +y_0=5500000",oi=" +lon_0=105",si=" +y_0=-5000000",ai=" +k=0.9995000000000001",li=" +k=0.9999749999999999",ui=" +towgs84=-160,-6,-302,0,0,0,0",hi=" +towgs84=307,304,-318,0,0,0,0",ci=" +lon_0=-82.5",fi=" +towgs84=70.995,-335.916,262.898,0,0,0,0",di=" +towgs84=-304.046,-60.576,103.64,0,0,0,0",pi=" +x_0=700000",mi=" +x_0=213360",gi=" +lon_0=-85.75",yi=" +lon_0=-100.5",_i=" +lon_0=-77.75",vi=" +x_0=999999.9999898402",bi=" +towgs84=-151.99,287.04,-147.45,0,0,0,0",wi=" +lon_0=129",xi=" +a=6378293.645208759",ki=" +b=6356617.987679838",Si=" +x_0=5500000",Mi=" +lat_1=40.78333333333333",Ai=" +lat_2=39.71666666666667",Ei=" +lat_1=37.93333333333333",Ci=" +lat_2=36.73333333333333",Ti=" +lat_1=42.68333333333333",Oi=" +lat_1=41.48333333333333",Pi=" +lat_2=41.28333333333333",Li=" +lat_1=47.08333333333334",Ii=" +lat_2=45.48333333333333",Ri=" +lat_0=44.78333333333333",ji=" +lat_2=44.18333333333333",Ni=" +lat_0=43.31666666666667",Bi=" +lat_1=36.16666666666666",Di=" +lat_2=34.33333333333334",Fi=" +lat_2=47.43333333333333",Ui=" +lat_1=47.48333333333333",Gi=" +lat_2=46.18333333333333",zi=" +lat_2=35.56666666666667",Hi=" +lat_1=35.23333333333333",qi=" +lat_2=33.93333333333333",Zi=" +lat_2=40.88333333333333",Wi=" +lat_1=34.83333333333334",Vi=" +lat_1=36.41666666666666",Qi=" +lat_1=36.18333333333333",Ki=" +lat_1=33.96666666666667",Yi=" +lat_2=32.13333333333333",Xi=" +lat_1=31.88333333333333",Ji=" +lat_2=30.11666666666667",$i=" +lat_1=30.28333333333333",to=" +lat_2=28.38333333333333",eo=" +lat_2=38.03333333333333",no=" +lat_1=47.33333333333334",ro=" +lat_2=45.83333333333334",io=" +lat_1=46.76666666666667",oo=" +lat_2=45.56666666666667",so=" +lat_1=44.06666666666667",ao=" +lat_2=42.73333333333333",lo=" +lat_1=32.66666666666666",uo=" +lat_2=31.16666666666667",ho=" +lat_1=48.63333333333333",co=" +lat_2=47.03333333333333",fo=" +lat_2=45.61666666666667",po=" +lat_1=45.21666666666667",mo=" +lat_2=43.78333333333333",go=" +lat_0=39.83333333333334",yo=" +lat_2=40.43333333333333",_o=" +lat_1=40.03333333333333",vo=" +lat_2=38.73333333333333",bo=" +lat_1=45.68333333333333",wo=" +lat_2=44.41666666666666",xo=" +lat_2=42.83333333333334",ko=" +lat_1=38.88333333333333",So=" +lat_2=37.48333333333333",Mo=" +lat_1=37.08333333333334",Ao=" +lat_2=38.66666666666666",Eo=" +lat_0=58",Co=" +lon_0=-98",To=" +lon_0=117",Oo=" +lon_0=135",Po=" +lat_0=41.5",Lo=" +lat_0=42.5",Io=" +y_0=3000000",Ro=" +lon_0=123",jo=" +lat_0=40",No=" +lat_0=54",Bo=" +towgs84=-192.873,-39.382,-111.202,-0.00205,-0.0005,0.00335,0.0188",Do=" +towgs84=565.417,50.3319,465.552,-0.398957,0.343988,-1.8774,4.0725",Fo=" +x_0=914401.8289",Uo=" +y_0=304800.6096",Go=" +lon_0=111",zo=" +k_0=0.99878641",Ho=" +lon_0=-66.43333333333334",qo=" +towgs84=61,-285,-181,0,0,0,0",Zo=" +towgs84=-133,-77,-51,0,0,0,0",Wo=" +towgs84=-679,669,-48,0,0,0,0",Vo=" +lon_0=-71.5",Qo=" +lon_0=-78.5",Ko=" +lon_0=-93.5",Yo=" +lat_0=41.75",Xo=" +y_0=249999.9998983998",Jo=" +y_0=999999.9999898402",$o=" +to_meter=1.0000135965",ts=" +a=6377304.063",es=" +lat_0=36",ns=" +towgs84=-79.9,-158,-168.9,0,0,0,0",rs=" +towgs84=-50.9,-347.6,-231,0,0,0,0",is=" +towgs84=-106.869,52.2978,-103.724,0.3366,-0.457,1.8422,-1.2747",os=" +towgs84=283,682,231,0,0,0,0",ss=" +towgs84=-206,172,-6,0,0,0,0",as=" +towgs84=-92,-93,122,0,0,0,0",ls=" +to_meter=0.9143985307444408",us="+proj=sterea",hs=" +lat_0=21.16666666666667",cs=" +lat_1=18.43333333333333",fs=" +lat_2=18.03333333333333",ds=" +lat_0=17.83333333333333",ps=" +gamma=323.1301023611111",ms=" +lon_0=-79.5",gs=" +y_0=4500000",ys=" +x_0=31500000",_s=" +x_0=500000.0001504",vs=" +b=6356514.96582849",bs=" +towgs84=674.4,15.1,405.3,0,0,0,0",ws=" +towgs84=-180.624,-225.516,173.919,-0.81,-1.898,8.336,16.7101",xs=" +towgs84=589,76,480,0,0,0,0",ks=" +towgs84=-263,6,431,0,0,0,0",Ss=" +lon_0=15",Ms=" +axis=wsu",As=" +lon_0=21",Es=" +lat_0=30",Cs=" +ellps=helmert",Ts=" +a=6377299.151",Os=" +lon_0=-74.5",Ps=" +b=6356750.304921594",Ls=" +y_0=2000000.0001016",Is=" +x_0=3500000.0001016",Rs=" +y_0=399999.99998984",js=" +x_0=200000.00001016",Ns=" +b=6356098.359005156",Bs=" +x_0=14500000",Ds=" +x_0=29500000",Fs=" +towgs84=-117,-132,-164,0,0,0,0",Us=" +zone=20",Gs=" +lon_0=-122",zs=" +ellps=bess_nam",Hs=" +lon_0=-86.15000000000001",qs=" +towgs84=-189,-242,-91,0,0,0,0",Zs=" +towgs84=-265,120,-358,0,0,0,0",Ws=" +towgs84=-73.472,-51.66,-112.482,0.953,4.6,-2.368,0.586",Vs=" +towgs84=-17.51,-108.32,-62.39,0,0,0,0",Qs=" +towgs84=-10.18,-350.43,291.37,0,0,0,0",Ks=" +towgs84=-190.421,8.532,238.69,0,0,0,0",Ys=" +lon_0=-68.5",Xs=" +a=6377299.36559538",Js=" +x_0=79999.99999968",$s=" +x_0=50000.00001504",ta=" +lon_0=0",ea=" +lon_0=27",na=" +lon_0=75",ra=" +lon_0=81",ia=" +lon_0=93",oa=" +lon_0=99",sa=" +x_0=900000",aa=" +x_0=13500000",la=" +x_0=20500000",ua=" +x_0=22500000",ha=" +towgs84=-166,-15,204,0,0,0,0",ca=" +towgs84=-130,110,-13,0,0,0,0",fa=" +towgs84=-587.8,519.75,145.76,0,0,0,0",da=" +lat_2=83.66666666666667",pa=" +lat_0=85.43711833333333",ma=" +towgs84=-273.5,110.6,-357.9,0,0,0,0",ga=" +lon_0=87",ya="+proj=laea",_a=" +towgs84=-403,684,41,0,0,0,0",va=" +lon_0=-92.5",ba=" +y_0=6000000",wa=" +zone=19",xa=" +lat_0=29.5",ka=" +y_0=300000",Sa=" +lat_2=45.5",Ma=" +k=0.999909091",Aa=" +a=6377492.018",Ea=" +b=6356751.689189189",Ca=" +b=6356100.230165384",Ta=" +lon_0=90",Oa=" +lat_0=90",Pa=" +x_0=18500000",La=" +x_0=19500000",Ia=" +x_0=15500000",Ra=" +x_0=16500000",ja=" +x_0=21500000",Na=" +x_0=23500000",Ba=" +x_0=25500000",Da=" +x_0=26500000",Fa=" +x_0=27500000",Ua=" +x_0=28500000",Ga=" +zone=18",za=" +zone=21",Ha=" +towgs84=-124.76,53,466.79,0,0,0,0",qa=" +lon_0=-92",Za=" +lon_0=33",Wa=" +lon_0=12",Va=" +lon_0=24",Qa=" +lat_2=77",Ka=" +y_0=200000",Ya=" +lon_0=-70.5",Xa=" +x_0=7500000",Ja=" +y_0=3500000",$a=" +towgs84=31,146,47,0,0,0,0",tl=" +lat_0=45",el=" +lat_0=26",nl=" +a=6378160",rl=" +lon_0=-109.5",il=" +x_0=30500000",ol=" +x_0=32500000",sl=" +lon_0=-85.83333333333333",al=" +lon_0=-118.3333333333333",ll=" +y_0=0.003048006096012192",ul=" +lat_0=30.5",hl=" +lat_0=44",cl=" +lon_0=30",fl=" +lat_0=47",dl=" +lat_1=77",pl=" +lat_0=36.16666666666666",ml=" +lat_0=4.596200416666666",gl=" +gamma=53.13010236111111",yl=" +lon_0=13.33333333333333",_l=" +lat_0=81.31722600000001",vl=" +lat_0=73.15574086111111",bl=" +lat_0=65.10127088888888",wl=" +zone=17",xl=" +lon_0=132",kl=" +lon_0=114",Sl=" +towgs84=-143,-90,-294,0,0,0,0",Ml=" +zone=22",Al=" +lat_0=41",El=" +lat_0=46.5",Cl=" +lon_0=-118",Tl=" +y_0=400000",Ol=" +x_0=17500000",Pl=" +x_0=33500000",Ll=" +lon_0=-113.75",Il=" +lon_0=-116.25",Rl=" +lon_0=-115.75",jl=" +lon_0=-106.25",Nl=" +k=0.999916667",Bl=" +k=0.999964286",Dl=" +lon_0=-108.75",Fl=" +towgs84=-73,-247,227,0,0,0,0",Ul=" +towgs84=265.025,384.929,-194.046,0,0,0,0",Gl=" +k=0.99998",zl=" +lat_1=40.65",Hl=" +lat_1=38.35",ql=" +y_0=2500000",Zl=" +y_0=6500000",Wl=" +x_0=39999.99999984",Vl=" +towgs84=-61.702,284.488,472.052,0,0,0,0",Ql=" +towgs84=-223.237,110.193,36.649,0,0,0,0",Kl=" +zone=39",Yl=" +zone=32",Xl=" +towgs84=-125,53,467,0,0,0,0",Jl=" +towgs84=198,881,317,0,0,0,0",$l=" +towgs84=214,804,268,0,0,0,0",tu=" +towgs84=217,823,299,0,0,0,0",eu=" +lon_0=45",nu=" +lat_1=43",ru="+proj=merc",iu=" +x_0=99999.99998983997",ou=" +x_0=99999.99999960001",su=" +x_0=2743195.592233322",au=" +y_0=914398.5307444407",lu=" +zone=38",uu=" +zone=28",hu=" +lon_0=-114",cu=" +lat_1=45.5",fu=" +towgs84=-73,46,-86,0,0,0,0",du=" +towgs84=11,72,-101,0,0,0,0",pu=" +towgs84=287.58,177.78,-135.41,0,0,0,0",mu=" +towgs84=-162.619,-276.959,-161.764,0.067753,-2.24365,-1.15883,-1.09425",gu=" +lon_0=-87",yu=" +lon_0=-99",_u=" +lon_0=102",vu=" +lon_0=126",bu=" +k=0.99999",wu=" +x_0=50000",xu=" +lat_2=40",ku=" +lon_0=-84.25",Su=" +x_0=11500000",Mu=" +lon_0=-72.75",Au=" +lon_0=-101.5",Eu=" +lon_0=-94.25",Cu=" +x_0=6500000",Tu=" +y_0=5000000",Ou=" +x_0=1700000",Pu=" +towgs84=31.95,300.99,419.19,0,0,0,0",Lu=" +towgs84=-189.681,18.3463,-42.7695,-0.33746,-3.09264,2.53861,0.4598",Iu=" +towgs84=-119.425,-303.659,-11.0006,1.1643,0.174458,1.09626,3.65706",Ru=" +towgs84=982.609,552.753,-540.873,6.68163,-31.6115,-19.8482,16.805",ju=" +zone=29",Nu=" +lon_0=9",Bu=" +zone=33",Du=" +zone=37",Fu=" +no_uoff",Uu=" +lon_0=120",Gu=" +lon_0=177",zu=" +lon_0=-177",Hu=" +lon_0=-158",qu=" +y_0=250000",Zu=" +lon_0=-111",Wu=" +x_0=2500000.0001424",Vu=" +x_0=1500000.0001464",Qu=" +lon_0=-71.60561777777777",Ku=" +lon_0=-156.6666666666667",Yu=" +lon_0=-160.1666666666667",Xu=" +lat_0=0.1166666666666667",Ju=" +towgs84=0,0,0,-0,-0,-0,0",$u=" +lon_0=-117.8333333333333",th=" +lon_0=-123.1666666666667",eh=" +lon_0=-122.3333333333333",nh=" +lon_0=-119.1666666666667",rh=" +lon_0=-123.0833333333333",ih=" +lon_0=-85.84999999999999",oh=" +lon_0=-87.09999999999999",sh=" +lon_0=-86.90000000000001",ah=" +lon_0=-89.24166666666667",lh=" +lon_0=-92.63333333333334",uh=" +towgs84=347.103,1078.12,2623.92,-33.8875,70.6773,-9.3943,186.074",hh=" +towgs84=8.846,-4.394,-1.122,-0.00237,-0.146528,0.130428,0.783926",ch=" +towgs84=-480.26,-438.32,-643.429,16.3119,20.1721,-4.0349,-111.7",fh=" +towgs84=-0.293,766.95,87.713,0.195704,1.69507,3.47302,-0.039338",dh=" +towgs84=221.525,152.948,176.768,-2.3847,-1.3896,-0.877,11.4741",ph=" +towgs84=215.525,149.593,176.229,-3.2624,-1.692,-1.1571,10.4773",mh=" +zone=35",gh=" +lat_0=46.95240555555556",yh=" +alpha=30.28813972222222",_h=" +lat_1=10.16666666666667",vh=" +lat_0=10.16666666666667",bh=" +lat_0=18.83333333333333",wh=" +lat_0=20.33333333333333",xh=" +lat_0=21.83333333333333",kh=" +lat_0=21.66666666666667",Sh=" +lat_0=45.30916666666666",Mh=" +lat_1=49.83333333333334",Ah=" +lat_2=51.16666666666666",Eh=" +lonc=-133.6666666666667",Ch=" +alpha=323.1301023611111",Th=" +lat_1=53.83333333333334",Oh=" +lat_2=51.83333333333334",Ph=" +lat_1=44.66666666666666",Lh=" +lat_0=44.66666666666666",Ih=" +lat_1=45.66666666666666",Rh=" +lat_0=45.91666666666666",jh=" +lat_0=45.08333333333334",Nh=" +lat_0=44.33333333333334",Bh=" +lat_0=44.08333333333334",Dh=" +lat_1=48.33333333333334",Fh=" +lat_0=48.33333333333334",Uh=" +lat_0=31.73409694444445",Gh=" +lon_0=35.21208055555556",zh=" +lat_0=44.03611111111111",Hh=" +lat_0=4.599047222222222",qh=" +lat_0=40.66666666666666",Zh=" +lat_1=49",Wh=" +lon_0=39",Vh=" +lat_1=37.25",Qh=" +lat_1=39.75",Kh=" +lat_2=38.45",Yh=" +lat_1=30.75",Xh=" +lon_0=-84.5",Jh=" +lat_0=33.75",$h=" +x_0=4000000",tc=" +y_0=4000000",ec=" +lon_0=-72.5",nc=" +x_0=5000000",rc=" +x_0=10500000",ic=" +x_0=12500000",oc=" +x_0=24500000",sc=" +k=0.99999375",ac=" +x_0=399999.9999984",lc=" +lon_0=-77",uc=" +lon_0=108",hc=" +lon_0=171",cc=" +towgs84=-179.483,-69.379,-27.584,-7.862,8.163,6.042,-13.925",fc=" +lon_0=-171",dc=" +lat_0=32.5",pc=" +lon_0=-117",mc=" +k=1.000015",gc=" +k=1.000034",yc=" +k=1.000031",_c=" +k=1.000026",vc=" +ellps=evrstSS",bc=" +a=6377301.243",wc=" +towgs84=410.721,55.049,80.746,2.5779,2.3514,0.6664,17.3311",xc=" +towgs84=72.438,345.918,79.486,1.6045,0.8823,0.5565,1.3746",kc=" +pm=ferro",Sc=" +lon_0=78",Mc=" +lon_0=10",Ac=" +pm=paris",Ec=" +towgs84=0.055,-0.541,-0.185,0.0183,-0.0003,-0.007,-0.014",Cc=" +towgs84=446.448,-125.157,542.06,0.15,0.247,0.842,-20.489",Tc=" +towgs84=8.853,-52.644,180.304,-0.393,-2.323,2.96,-24.081",Oc=" +towgs84=572.213,85.334,461.94,4.9732,1.529,5.2484,3.5378",Pc=" +zone=58",Lc=" +zone=23",Ic=" +x_0=304800.6096012192",Rc=" +y_0=152400.3048006096",jc=" +x_0=800000.0001016001",Nc=" +x_0=399999.9998983998",Bc=" +x_0=7999999.999968001",Dc=" +x_0=5999999.999976001",Fc=" +x_0=830000.0001016001",Uc=" +x_0=249999.9998983998",Gc=" +x_0=350000.0001016001",zc=" +to_meter=0.3047972654",Hc=" +x_0=99999.99989839978",qc=" +y_0=8000000.000010163",Zc=" +x_0=699999.9999898402",Wc=" +lon_0=-69",Vc=" +lon_0=-86",Qc=" +towgs84=-3.2,-5.7,2.8,0,0,0,0",Kc=" +x_0=8500000",Yc=" +x_0=9500000",Xc=" +lat_1=39.45",Jc=" +lat_0=44.25",$c=" +lat_1=41.95",tf=" +lat_2=35.25",ef=" +lat_2=34.65",nf=" +lat_2=44.25",rf=" +lat_1=47.05",of=" +lat_1=40.25",sf=" +k_0=1.00012",af=" +lat_0=40.25",lf=" +zone=40",uf=" +zone=36",hf=" +zone=51",cf=" +zone=48",ff=" +zone=49",df=" +lon_0=96",pf=" +y_0=750000",mf=" +lat_0=36.5",gf=" +lon_0=-119",yf=" +lat_0=33.5",_f=" +lat_2=41.2",vf=" +k=0.999995",bf=" +lat_2=33.3",wf=" +lat_0=38.5",xf=" +lon_0=-154",kf=" +lon_0=-120",Sf=" +x_0=34500000",Mf=" +x_0=35500000",Af=" +x_0=36500000",Ef=" +x_0=37500000",Cf=" +x_0=38500000",Tf=" +x_0=39500000",Of=" +x_0=40500000",Pf=" +x_0=41500000",Lf=" +x_0=43500000",If=" +x_0=45500000",Rf=" +y_0=3999999.99998984",jf=" +y_0=2000000.00001016",Nf=" +towgs84=164,138,-189,0,0,0,0",Bf=" +towgs84=-186,230,110,0,0,0,0",Df=" +towgs84=-199,32,322,0,0,0,0",Ff=" +to_meter=0.3047997101815088",Uf=" +towgs84=-76,-138,67,0,0,0,0",Gf=" +towgs84=-43,-163,45,0,0,0,0",zf=" +towgs84=-346,-1,224,0,0,0,0",Hf=" +towgs84=210,814,289,0,0,0,0",qf=" +towgs84=-74,-130,42,0,0,0,0",Zf=" +zone=15",Wf=" +zone=16",Vf=" +zone=34",Qf=" +zone=50",Kf=" +zone=52",Yf=" +lon_0=-62",Xf=" +lon_0=-84",Jf=" +lon_0=-79",$f=" +lon_0=131",td=" +lon_0=153",ed=" +lon_0=165",nd=" +lon_0=-94",rd=" +lon_0=-54",id=" +a=6378300.789",od=" +b=6356566.435",sd=" +y_0=3999999.9998984",ad=" +y_0=5000000.0001016",ld=" +x_0=150000.00001464",ud=" +lat_2=46",hd=" +lon_0=84",cd=" +lat_0=43",fd=" +k_0=0.999625769",dd=" +towgs84=51,391,-36,0,0,0,0",pd=" +towgs84=-83,37,124,0,0,0,0",md=" +towgs84=-355,21,72,0,0,0,0",gd=" +towgs84=-23,259,-9,0,0,0,0",yd=" +towgs84=174.05,-25.49,112.57,-0,-0,0.554,0.2263",_d=" +zone=59",vd=" +zone=25",bd=" +zone=11",wd=" +zone=12",xd=" +zone=13",kd=" +zone=54",Sd=" +zone=14",Md=" +zone=24",Ad=" +zone=47",Ed=" +lat_2=38.3",Cd=" +lat_1=45.7",Td=" +lat_2=42.1",Od=" +x_0=165000",Pd=" +lat_2=32.5",Ld=" +x_0=609600",Id=" +lat_1=39.2",Rd=" +lat_2=47.5",jd=" +lat_1=30.7",Nd=" +lat_2=29.3",Bd=" +lat_0=28.5",Dd=" +lat_1=41.7",Fd=" +lat_1=44.4",Ud=" +lat_1=27.5",Gd=" +lon_0=-150",zd=" +lat_0=44.5",Hd=" +k=1.000027",qd=" +k=1.000038",Zd=" +k=1.000036",Wd=" +lon_0=-87.5",Vd=" +x_0=3999999.999984",Qd=" +x_0=199999.9999992",Kd=" +towgs84=16,196,93,0,0,0,0",Yd=" +towgs84=-88,4,101,0,0,0,0",Xd=" +lat_0=18",Jd=" +lat_2=67",$d=" +lon_0=-96",tp=" +x_0=80000",ep=" +lon_0=-82",np=" +lon_0=-74",rp=" +lon_0=147",ip=" +lon_0=150",op=" +x_0=40000",sp=" +k=1.00002",ap=" +x_0=42500000",lp=" +x_0=44500000",up=" +lon_0=-85.05",hp=" +ellps=mod_airy",cp=" +lat_0=0.1333333333333333",fp=" +lat_1=-60.66666666666666",dp=" +lat_2=-63.33333333333334",pp=" +lon_0=-91.91666666666667",mp=" +y_0=0.003352806705613411",gp=" +zone=30",yp=" +lon_0=3",_p=" +zone=26",vp=" +zone=53",bp=" +lat_0=31.73439361111111",wp=" +lon_0=35.20451694444445",xp=" +lon_0=7.439583333333333",kp=" +lon_0=132.1666666666667",Sp=" +lon_0=134.3333333333333",Mp=" +lon_0=137.1666666666667",Ap=" +lon_0=139.8333333333333",Ep=" +lon_0=140.8333333333333",Cp=" +lon_0=3.192280555555556",Tp=" +lat_1=49.50000000000001",Op=" +lat_0=49.50000000000001",Pp=" +alpha=53.31582047222222",Lp=" +lon_0=10.33333333333333",Ip=" +lon_0=16.33333333333333",Rp=" +towgs84=-502.862,-247.438,312.724,0,0,0,0",jp=" +towgs84=-381.788,-57.501,-256.673,0,0,0,0",Np=" +towgs84=-43.685,-179.785,-267.721,0,0,0,0",Bp=" +zone=60",Dp=" +zone=55",Fp=" +lon_0=36",Up=" +lon_0=42",Gp=" +lat_1=46",zp=" +lat_1=44",Hp=" +lat_0=42",qp=" +lon_0=51",Zp=" +lat_0=33",Wp=" +lat_0=52",Vp=" +ellps=airy",Qp=" +pm=jakarta",Kp=" +x_0=2743195.5",Yp=" +y_0=-4354009.816",Xp=" +k_0=0.9987864078000001",Jp=" +towgs84=-106.226,166.366,-37.893,0,0,0,0",$p=" +towgs84=508.088,-191.042,565.223,0,0,0,0",tm=" +k=0.99996",em=" +a=6378135",nm=" +lon_0=-66",rm=" +lon_0=141",im=" +lon_0=159",om=" +k=0.99984",sm=" +lat_0=-22",am=" +lon_0=127.5",lm=" +x_0=6000000",um=" +x_0=3900000",hm=" +y_0=1300000",cm=" +lat_0=44.75",fm=" +lat_0=37.75",dm=" +lat_0=40.55",pm=" +lon_0=-87.3",mm=" +lon_0=-86.5",gm=" +towgs84=195.671,332.517,274.607,0,0,0,0",ym=" +towgs84=-204.619,140.176,55.226,0,0,0,0",_m="+proj=somerc",vm=" +y_0=30480.06096012192",bm=" +y_0=999999.9999960001",wm=" +x_0=182880.3657607315",xm=" +towgs84=674.374,15.056,405.346,0,0,0,0",km=" +towgs84=-133.63,-157.5,-158.62,0,0,0,0",Sm=" +towgs84=-0.465,372.095,171.736,0,0,0,0",Mm=" +towgs84=-56.263,16.136,-22.856,0,0,0,0",Am=" +towgs84=-241.54,-163.64,396.06,0,0,0,0",Em=" +zone=31",Cm=" +zone=10",Tm=" +zone=46",Om=" +x_0=304800.6096",Pm=" +y_0=152400.3048",Lm=" +alpha=337.25556",Im=" +x_0=2546731.496",Rm=" +gamma=337.25556",jm=" +k_0=0.999625544",Nm=" +towgs84=335.47,222.58,-230.94,0,0,0,0",Bm=" +towgs84=217.037,86.959,23.956,0,0,0,0",Dm=" +towgs84=-128.16,-282.42,21.93,0,0,0,0",Fm=" +towgs84=103.25,-100.4,-307.19,0,0,0,0",Um=" +lon_0=31",Gm=" +lon_0=18",zm=" +lat_2=36",Hm=" +lat_0=29",qm=" +lat_0=35",Zm=" +lat_0=34",Wm=" +lon_0=63",Vm=" +lat_0=37",Qm=" +lat_2=65",Km=" +y_0=-4000000",Ym=" +y_0=914398.5",Xm=" +towgs84=-199.87,74.79,246.62,0,0,0,0",Jm=" +towgs84=-11.64,-348.6,291.98,0,0,0,0",$m=" +towgs84=-254.1,-5.36,-100.29,0,0,0,0",tg=" +towgs84=-206.1,-174.7,-87.7,0,0,0,0",eg=" +towgs84=-770.1,158.4,-498.2,0,0,0,0",ng=" +towgs84=-146.21,112.63,4.05,0,0,0,0",rg=" +towgs84=-294.7,-200.1,525.5,0,0,0,0",ig=" +lat_0=4",og=" +a=6378300",sg=" +lon_0=-63",ag=" +lon_0=162",lg=" +lat_ts=90",ug=" +y_0=600000",hg=" +x_0=350000",cg=" +y_0=900000",fg=" +lat_1=32.5",dg=" +lon_0=-147",pg=" +k=1.000043",mg=" +lat_0=48.5",gg=" +lat_0=40.9",yg=" +k=1.000028",_g=" +k=1.000025",vg=" +x_0=170251.555",bg=" +b=6356657.142669561",wg=" +b=6356094.667915204",xg=" +b=6355862.933255573",kg=" +a=6378249.144808011",Sg=" +b=6356514.966204134",Mg=" +towgs84=-70.9,-151.8,-41.4,0,0,0,0",Ag=" +towgs84=52.17,-71.82,-14.9,0,0,0,0",Eg=" +towgs84=283.7,735.9,261.1,0,0,0,0",Cg=" +zone=5",Tg=" +zone=7",Og=" +lon_0=19",Pg=" +lon_0=25",Lg=" +lat_2=45",Ig=" +lon_0=57",Rg=" +lon_0=69",jg=" +lat_2=39",Ng=" +lat_2=35",Bg=" +lon_0=28",Dg=" +lon_0=-61.5",Fg=" +lon_0=-64.5",Ug=" +lon_0=-90.5",Gg=" +lon_0=-94.5",zg=" +y_0=2800000",Hg=" +x_0=4321000",qg=" +y_0=3210000",Zg=" +y_0=14743.5",Wg=" +y_0=1999999.999992",Vg=" +y_0=2999999.999988",Qg=" +y_0=50000.00001504",Kg=" +zone=41",Yg=" +zone=42",Xg=" +k=0.994",Jg=" +zone=56",$g=" +lon_0=-67.875",ty=" +lon_0=-70.375",ey=" +x_0=609601.22",ny=" +b=6356889.449",ry=" +lon_0=-69.125",iy=" +lon_0=-121.75",oy=" +lon_0=-121.25",sy=" +lon_0=-119.75",ay=" +lon_0=-122.75",ly=" +zone=6",uy="+proj=krovak",hy=" +towgs84=-637,-549,-203,0,0,0,0",cy=" +towgs84=-20.8,11.3,2.4,0,0,0,0",fy=" +lon_0=-93",dy=" +lon_0=127",py=" +lon_0=125",my=" +k=0.99975",gy=" +lon_0=136",yy=" +lon_0=138",_y=" +lon_0=180",vy=" +y_0=50000",by=" +lon_0=-85",wy=" +k=1.00016",xy=" +lon_0=2.7",ky=" +towgs84=27.5,14,186.4,0,0,0,0",Sy=" +towgs84=-499,-249,314,0,0,0,0",My=" +towgs84=-467,-16,-300,0,0,0,0",Ay=" +towgs84=-382,-59,-262,0,0,0,0",Ey=" +towgs84=253,-132,-127,0,0,0,0",Cy=" +towgs84=-963,510,-359,0,0,0,0",Ty=" +towgs84=94,-948,-1262,0,0,0,0",Oy=" +zone=1",Py=" +zone=27",Ly=" +zone=57",Iy=" +pm=oslo",Ry=" +zone=43",jy=" +lon_0=23",Ny=" +lon_0=48",By=" +lon_0=54",Dy=" +lat_0=49.5",Fy=" +k=0.999912",Uy=" +lon_0=-174",Gy=" +lon_0=-168",zy=" +lon_0=-170",Hy=" +lon_0=-165",qy=" +lat_2=40.5",Zy=" +lon_0=-115",Wy=" +lat_1=29.5",Vy=" +k=1.000045",Qy=" +lat_1=39.5",Ky=" +lat_1=33.3",Yy=" +lat_0=33.3",Xy=" +lon_0=-155.5",Jy=" +lon_0=-159.5",$y=" +y_0=-4480000",t_=" +lon_0=-176.5",e_=" +lon_0=-89.75",n_=" +k_0=1.000008",r_=" +lonc=-124.05",i_=" +k_0=1.000002",o_=" +lon_0=-122.5",s_=" +lon_0=-98.25",a_=" +lon_0=-112.5",l_=" +lon_0=-84.95",u_=" +lon_0=-86.95",h_=" +lon_0=-85.45",c_=" +lon_0=-87.45",f_=" +lon_0=-87.55",d_=" +towgs84=-149,128,296,0,0,0,0",p_=" +towgs84=-425,-169,81,0,0,0,0",m_=" +towgs84=-104,167,-38,0,0,0,0",g_=" +towgs84=-106,-87,188,0,0,0,0",y_=" +towgs84=-289,-124,60,0,0,0,0",__=" +towgs84=137,248,-430,0,0,0,0",v_=" +towgs84=-13,-348,292,0,0,0,0",b_=" +towgs84=-115,118,426,0,0,0,0",w_=" +towgs84=0,-0.15,0.68,0,0,0,0",x_=" +towgs84=145,-187,103,0,0,0,0",k_=" +towgs84=-134,229,-29,0,0,0,0",S_=" +towgs84=70,207,389.5,0,0,0,0",M_=" +towgs84=-148,51,-291,0,0,0,0",A_=" +towgs84=-255,-15,71,0,0,0,0",E_=" +towgs84=725,685,536,0,0,0,0",C_=" +towgs84=72,213.7,93,0,0,0,0",T_=" +towgs84=174,359,365,0,0,0,0",O_=" +towgs84=-173,253,27,0,0,0,0",P_=" +towgs84=-203,141,53,0,0,0,0",L_=" +towgs84=186,482,151,0,0,0,0",I_=" +towgs84=162,117,154,0,0,0,0",R_=" +towgs84=-73,213,296,0,0,0,0",j_=" +towgs84=-130,29,364,0,0,0,0",N_=" +towgs84=-10,375,165,0,0,0,0",B_=" +towgs84=175,-38,113,0,0,0,0",D_=" +to_meter=0.9143984146160287",F_=" +zone=2",U_=" +zone=8",G_=" +zone=9",z_=" +zone=4",H_=" +towgs84=30,430,368,0,0,0,0",q_=" +towgs84=185,165,42,0,0,0,0",Z_=" +towgs84=-97,787,86,0,0,0,0",W_=" +towgs84=639,405,60,0,0,0,0",V_=" +zone=44",Q_=" +zone=45",K_=" +lon_0=-58.5",Y_=" +lon_0=-67.5",X_=" +lon_0=-73.5",J_=" +lon_0=-76.5",$_=" +y_0=1200000",tv=" +lon_0=133.5",ev=" +x_0=8000000",nv=" +y_0=8000000",rv=" +k=0.9998335",iv=" +lon_0=-85.5",ov=" +x_0=7000000",sv=" +lat_0=43.75",av=" +lat_0=43.25",lv=" +lat_0=45.25",uv=" +lon_0=-86.3",hv=" +lat_0=38.15",cv=" +lat_0=39.15",fv=" +lat_0=41.25",dv=" +lat_0=40.65",pv=" +lat_0=39.25",mv=" +lat_0=40.35",gv=" +lon_0=-85.8",yv=" +towgs84=9,183,236,0,0,0,0",_v=" +towgs84=-48,55,52,0,0,0,0",vv=" +towgs84=84,274,65,0,0,0,0",bv=" +lon_0=17",wv=" +lat_1=60",xv=" +k=0.9998",kv=" +lon_0=66",Sv=" +lon_0=20",Mv=" +lon_0=26",Av=" +lat_0=51",Ev=" +lat_1=87",Cv=" +lat_1=26",Tv=" +lon_0=144",Ov=" +lon_0=168",Pv=" +lon_0=174",Lv=" +lon_0=-72",Iv=" +lon_0=-75",Rv=" +lon_0=-60",jv=" +lon_0=-39",Nv="+proj=poly",Bv=" +x_0=219529.584",Dv=" +a=6378306.3696",Fv=" +lon_0=-61.33333333333334",Uv=" +lon_0=-91.86666666666666",Gv=" +lon_0=-8.131906111111112",zv=" +lon_0=-83.66666666666667",Hv=" +lon_0=-108.4166666666667",qv=" +lon_0=-108.3333333333333",Zv=" +lon_0=-85.40000000000001",Wv=" +lon_0=-86.65000000000001",Vv=" +lon_0=-86.40000000000001",Qv=" +lon_0=-85.59999999999999",Kv=" +lon_0=-87.15000000000001",Yv=" +lon_0=-86.59999999999999",Xv=" +lon_0=-84.90000000000001",Jv=" +lon_0=-85.65000000000001",$v=" +lon_0=-87.65000000000001",tb=" +lon_0=-85.34999999999999",eb=" +lon_0=-87.40000000000001",nb=" +lon_0=-87.34999999999999",rb=" +lon_0=-85.90000000000001",ib=" +lon_0=-90.62222222222222",ob=" +lon_0=-91.84999999999999",sb=" +lon_0=-91.15277777777779",ab=" +lon_0=-91.79722222222222",lb=" +lon_0=-92.45777777777778",ub=" +lon_0=-91.29444444444444",hb=" +lon_0=-90.70833333333334",cb=" +lon_0=-89.39444444444445",fb=" +lon_0=-89.42222222222223",db=" +lon_0=-88.77500000000001",pb=" +lon_0=-87.27222222222223",mb=" +lon_0=-91.89444444444445",gb=" +lon_0=-91.28888888888889",yb=" +lon_0=-88.14166666666668",_b=" +lon_0=-88.63333333333334",vb=" +lon_0=-89.83888888888889",bb=" +lon_0=-90.16111111111111",wb=" +lon_0=-90.25555555555556",xb=" +lon_0=-90.84429651944444",kb=" +lon_0=-87.89444444444445",Sb=" +lon_0=-91.31666666666666",Mb=" +lon_0=-89.03333333333333",Ab=" +lon_0=-89.73333333333333",Eb=" +lon_0=-87.71111111111111",Cb=" +lon_0=-88.41666666666667",Tb=" +lon_0=-90.64166666666668",Ob=" +lon_0=-87.90833333333335",Pb=" +lon_0=-89.54444444444444",Lb=" +lon_0=-92.22777777777777",Ib=" +lon_0=-90.48888888888889",Rb=" +lon_0=-90.43055555555556",jb=" +lon_0=-89.07222222222222",Nb=" +lon_0=-91.06666666666666",Bb=" +lon_0=-89.90000000000001",Db=" +lon_0=-91.11666666666666",Fb=" +lon_0=-88.60555555555555",Ub=" +lon_0=-90.48333333333333",Gb=" +lon_0=-91.36666666666666",zb=" +lon_0=-90.78333333333333",Hb=" +lon_0=-89.48888888888889",qb=" +lon_0=-88.54166666666667",Zb=" +lon_0=-91.78333333333333",Wb=" +lon_0=-88.06388888888888",Vb=" +lon_0=-88.22499999999999",Qb=" +lon_0=-88.81666666666666",Kb=" +y_0=0.004876809753619507",Yb=" +y_0=0.008534417068834137",Xb=" +y_0=0.003962407924815849",Jb=" +y_0=0.005791211582423164",$b=" +lon_0=-55.68333333333333",tw=" +to_meter=0.201166195164",ew=" +lat_0=4.666666666666667",nw=" +lat_0=6.666666666666667",rw=" +lon_0=6.166666666666667",iw=" +lat_0=10.44166666666667",ow=" +lat_0=22.31213333333334",sw=" +lon_0=114.1785555555556",aw=" +lon_0=51.21666666666667",lw=" +lon_0=11.30827777777778",uw=" +lon_0=13.55827777777778",hw=" +lon_0=15.80827777777778",cw=" +lon_0=18.05827777777778",fw=" +lon_0=20.30827777777778",dw=" +lon_0=22.55827777777778",pw=" +lat_1=27.41666666666667",mw=" +lat_2=34.91666666666666",gw=" +lat_0=31.16666666666667",yw=" +lat_1=59.33333333333334",_w=" +lat_0=57.51755393055556",vw=" +lon_0=4.359215833333333",bw=" +lat_1=61.66666666666666",ww=" +lat_0=29.02626833333333",xw=" +lat_1=48.66666666666666",kw=" +lat_2=53.66666666666666",Sw=" +lon_0=127.0028902777778",Mw=" +lon_0=89.84999999999999",Aw=" +lon_0=91.56666666666666",Ew=" +lon_0=24.83333333333333",Cw=" +lat_2=63.66666666666666",Tw=" +lat_0=65.35103930555555",Ow=" +lat_1=63.66666666666666",Pw=" +lat_2=60.33333333333334",Lw=" +lat_0=62.01530688888889",Iw=" +lat_1=45.78333333333333",Rw=" +lat_0=45.78333333333333",jw=" +lat_0=42.66666666666666",Nw=" +lat_0=43.36666666666667",Bw=" +lat_0=45.70611111111111",Dw=" +lat_0=45.13333333333333",Fw=" +lat_1=46.66964837722222",Uw=" +lat_0=46.66964837722222",Gw=" +lat_0=43.48138888888889",zw=" +lat_1=45.89871486583333",Hw=" +lat_0=45.89871486583333",qw=" +lat_0=42.71944444444445",Zw=" +lat_1=44.97785689861112",Ww=" +lat_0=44.97785689861112",Vw=" +lat_1=43.46254664583333",Qw=" +lat_0=43.46254664583333",Kw=" +lon_0=-90.9388888888889",Yw=" +lat_0=41.47222222222222",Xw=" +lat_0=45.88333333333333",Jw=" +lat_0=44.40833333333333",$w=" +lat_1=44.87228112638889",tx=" +lat_0=44.87228112638889",ex=" +lat_0=45.43888888888888",nx=" +lat_0=44.00555555555555",rx=" +lat_0=41.41111111111111",ix=" +lat_1=42.63756227694444",ox=" +lat_0=42.63756227694444",sx=" +lat_1=43.80700011777778",ax=" +lat_0=43.80700011777778",lx=" +lat_0=42.53888888888888",ux=" +lat_0=45.43333333333333",hx=" +lat_0=44.25333512777778",cx=" +lat_0=42.21666666666667",fx=" +lat_0=43.26666666666667",dx=" +lat_0=43.45111111111111",px=" +lat_1=45.15423710527778",mx=" +lat_0=45.15423710527778",gx=" +lat_0=44.84444444444445",yx=" +lat_1=44.90090442361111",_x=" +lat_0=44.90090442361111",vx=" +lat_0=44.69166666666666",bx=" +lat_0=44.71666666666667",wx=" +lat_1=44.00007392861111",xx=" +lat_0=44.00007392861111",kx=" +lat_0=44.39722222222222",Sx=" +lat_1=45.70422377027778",Mx=" +lat_0=45.70422377027778",Ax=" +lat_1=44.63614887194444",Ex=" +lat_0=44.63614887194444",Cx=" +lat_0=44.66111111111111",Tx=" +lat_1=44.41682397527777",Ox=" +lat_0=44.41682397527777",Px=" +lat_0=44.55555555555555",Lx=" +lat_0=41.94444444444444",Ix=" +lat_0=43.91944444444444",Rx=" +lat_0=42.81944444444445",jx=" +lat_1=45.90009913138888",Nx=" +lat_0=45.90009913138888",Bx=" +lat_1=45.17782208583333",Dx=" +lat_0=45.17782208583333",Fx=" +lat_0=43.16111111111111",Ux=" +lat_1=43.57503293972223",Gx=" +lat_0=43.57503293972223",zx=" +lat_1=46.07784409055556",Hx=" +lat_0=46.07784409055556",qx=" +lat_1=42.66946209694444",Zx=" +lat_0=42.66946209694444",Wx=" +lat_1=45.96121983333334",Vx=" +lat_0=45.96121983333334",Qx=" +lat_0=42.91805555555555",Kx=" +lat_0=42.56944444444445",Yx=" +lat_0=43.42027777777778",Xx=" +lat_1=44.11394404583334",Jx=" +lat_0=44.11394404583334",$x=" +lat_1=44.36259546944444",tk=" +lat_0=44.36259546944444",ek=" +lat_1=44.10000000000001",nk=" +lat_0=44.10000000000001",rk=" +lat_1=42.16500000000001",ik=" +lat_0=42.16500000000001",ok=" +lat_0=52.15616055555555",sk=" +lat_2=48.73333333333333",ak=" +zone=3",lk=" +lat_0=53.5",uk=" +k=0.999923",hk=" +x_0=850000",ck=" +x_0=830000",fk=" +lon_0=16.5",dk=" +x_0=520000",pk=" +lat_2=31.5",mk=" +lon_0=10.5",gk=" +lat_1=44.5",yk=" +lon_0=-153",_k=" +lon_0=-135",vk=" +x_0=750000",bk=" +lat_0=43.5",wk=" +lon_0=-142",xk=" +lon_0=-146",kk=" +lon_0=-162",Sk=" +lon_0=-166",Mk=" +lon_0=-176",Ak=" +lat_2=39.5",Ek=" +lon_0=-129",Ck=" +k_0=1.0002",Tk=" +k=1.000023",Ok=" +lon_0=-121",Pk=" +k=1.000175",Lk=" +lat_0=45.5",Ik=" +k=1.000155",Rk=" +lat_2=37.5",jk=" +lat_1=48.5",Nk=" +k=1.000029",Bk=" +lat_0=39.6",Dk=" +k=1.000013",Fk=" +k=1.000022",Uk=" +lat_0=40.7",Gk=" +lat_0=39.3",zk=" +lat_0=37.8",Hk=" +lat_0=38.9",qk=" +lon_0=-5.4",Zk=" +y_0=626907.39",Wk=" +b=6356571.996",Vk=" +a=6377295.664",Qk=" +lon_0=5.38763888888889",Kk=" +y_0=-4600000.00001208",Yk=" +y_0=1889763.779527559",Xk=" +y_0=99999.99999960001",Jk=" +x_0=120091.4401828804",$k=" +lon_0=72",tS=" +lat_0=50",eS=" +lat_1=50",nS=" +lat_1=35",rS=" +lon_0=22",iS=" +lat_1=34",oS=" +lonc=115",sS=" +lat_0=-9",aS=" +lat_0=23",lS=" +lat_1=85",uS=" +lat_2=69",hS=" +lat_1=69",cS=" +lat_2=61",fS=" +lon_0=34",dS=" +lon_0=140.25",pS=" +lon_0=142.25",mS=" +lon_0=144.25",gS=" +x_0=47500000",yS=" +y_0=-3000000",_S=" +pm=2.337208333333333",vS=" +x_0=7000000.00000248",bS=" +lon_0=6",wS=" +k=0.997",xS=" +lon_0=106",kS=" +lon_0=154",SS=" +lon_0=156",MS=" +lat_2=-36",AS=" +lon_0=119",ES=" +lon_0=121",CS=" +lon_0=166",TS=" +a=6371228",OS=" +b=6371228",PS=" +a=6378273",LS=" +lat_0=-44",IS=" +pm=lisbon",RS=" +lon_0=-57",jS=" +lon_0=-56",NS=" +k=1.00007",BS=" +lonc=-123",DS=" +alpha=295",FS=" +gamma=295",US=" +k=1.00011",GS=" +k=1.00005",zS=" +k=1.00013",HS=" +x_0=30000",qS=" +k=1.00001",ZS=" +k=1.00003",WS=" +y_0=130000.00001472",VS=" +x_0=119999.99999952",QS=" +y_0=-2999999.999988",KS=" +x_0=-299999.9999988",YS=" +lat_1=43.0695160375",XS=" +lat_0=43.0695160375",JS=" +lat_1=43.3223129275",$S=" +lat_0=43.3223129275",tM=" +k=1.0000067",eM=" +a=6378298.3",nM=" +lon_0=-66.5",rM=" +lon_0=129.5",iM=" +lon_0=138.5",oM=" +x_0=2300000",sM=" +x_0=3300000",aM=" +x_0=4300000",lM=" +y_0=7500000",uM=" +lonc=102.25",hM=" +y_0=1166200",cM=" +x_0=3000000",fM=" +lat_1=46.25",dM=" +ellps=WGS66",pM=" +ellps=GRS67",mM=" +lat_1=34.65",gM=" +y_0=59999.99999976",yM=" +y_0=30000.00001512",_M=" +x_0=59999.99999976",vM=" +x_0=30000.00001512",bM=" +lat_1=43.200055605",wM=" +lat_0=43.200055605",xM=" +y_0=65379.0134283",kM=" +alpha=323.0257905",SM=" +alpha=53.31580995",MM=" +x_0=10000.0000152";t.exports=[2e3,i+f+Yf+ai+V+p+T+o+e,1,i+f+Yf+ai+V+p+T+A_+o+e,1,i+f+Yf+ai+V+p+T+E_+o+e,1,i+f+Yf+ai+V+p+T+C_+o+e,1,i+f+Yf+ai+V+p+T+T_+o+e,1,i+f+Yf+ai+V+p+T+yv+o+e,1,i+f+Yf+ai+V+p+T+d_+o+e,1,i+f+Yf+ai+V+p+T+gm+o+e,2,i+f+K_+x+At+p+j+o+e,1,i+f+Dg+x+At+p+j+o+e,1,i+f+Fg+x+At+p+j+o+e,1,i+f+Y_+x+At+p+j+o+e,1,i+f+Ya+x+At+p+j+o+e,1,i+f+X_+x+At+p+j+o+e,1,i+f+J_+x+At+p+j+o+e,1,i+f+ms+x+At+p+j+o+e,1,i+f+X_+x+At+p+j+o+e,1,i+f+J_+x+At+p+j+o+e,1,i+f+ms+x+At+p+j+o+e,1,i+f+ci+x+At+p+j+o+e,1,i+f+dn+x+At+p+j+o+e,1,i+f+Xf+x+At+p+j+o+e,1,i+f+gu+x+At+p+j+o+e,1,i+f+He+x+At+p+j+o+e,1,i+f+fy+x+At+p+j+o+e,1,i+f+$d+x+At+p+j+o+e,1,u+Zf+j+o+e,1,u+Wf+j+o+e,1,u+wl+j+o+e,1,u+Ga+j+o+e,1,u+wl+j+o+e,1,u+Ga+j+o+e,1,u+wa+j+o+e,1,u+Us+j+o+e,1,u+za+j+o+e,4,i+bp+wp+tM+Bv+Zk+r+_v+o+e,1,u+gp+T+Xl+o+e,1,u+gp+T+Ha+o+e,1,u+ju+T+Xl+o+e,1,u+ju+T+Ha+o+e,1,i+f+oi+" +k=1"+Pa+p+d+Vs+o+e,1,i+f+Go+" +k=1"+La+p+d+Vs+o+e,1,i+f+Ss+" +k=1"+Z+p+Ms+N+n+o+e,1,i+f+bv+" +k=1"+Z+p+Ms+N+n+o+e,1,i+f+Og+" +k=1"+Z+p+Ms+N+n+o+e,1,i+f+As+" +k=1"+Z+p+Ms+N+n+o+e,1,i+f+jy+" +k=1"+Z+p+Ms+N+n+o+e,1,i+f+Pg+" +k=1"+Z+p+Ms+N+n+o+e,1,i+f+ea+" +k=1"+Z+p+Ms+N+n+o+e,1,i+f+" +lon_0=29 +k=1"+Z+p+Ms+N+n+o+e,1,i+f+Um+" +k=1"+Z+p+Ms+N+n+o+e,1,i+f+Za+" +k=1"+Z+p+Ms+N+n+o+e,1,_m+gh+xp+" +k_0=1 +x_0=2600000"+$_+M+xm+o+e,1,gn+" +lat_0=27.51882880555555 +lonc=52.60353916666667 +alpha=0.5716611944444444 +k=0.999895934 +x_0=658377.437 +y_0=3044969.194 +gamma=0.5716611944444444"+_+km+o+e,1,u+lu+_+Fs+o+e,1,u+Kl+_+Fs+o+e,1,u+lf+_+Fs+o+e,1,u+Kg+_+Fs+o+e,1,l+" +lat_1=40"+jo+ta+" +k_0=0.9988085293"+E+ug+eM+bg+" +pm=madrid"+o+e,3,uy+Dy+" +lon_0=42.5"+yh+x+Z+p+M+xs+kc+o+e,1,Ln+" +lat_0=11.25217861111111 +lon_0=-60.68600888888889 +x_0=37718.66159325 +y_0=36209.91512952"+xi+ki+tw+e,1,u+Us+_+Sm+o+e,1,i+f+Nu+x+R+p+_+Q+o+e,1,i+f+" +lon_0=11"+x+R+p+_+Q+o+e,1,i+f+" +lon_0=13"+x+R+p+_+Q+o+e,1,i+f+Ss+x+R+p+_+Q+o+e,1,i+f+bv+x+R+p+_+Q+o+e,1,i+f+Og+x+R+p+_+Q+o+e,1,i+f+As+x+R+p+_+Q+o+e,1,i+f+jy+x+R+p+_+Q+o+e,1,i+f+Pg+x+R+p+_+Q+o+e,1,u+Yl+_+Q+o+e,1,u+Bu+_+Q+o+e,1,u+Vf+_+Q+o+e,1,u+mh+_+Q+o+e,1,i+F+Wc+" +k=1"+On+p+_+o+e,1,i+F+Wc+" +k=1"+On+p+_+ky+o+e,1,i+F+Wc+" +k=1"+On+p+_+Kd+o+e,1,u+wa+G+_+Kd+o+e,3,i+f+Wa+pt+m+p+_+Q+o+e,1,i+f+" +lon_0=11"+pt+m+p+vt+he+ks+o+e,1,u+lu+N+n+o+e,1,u+Kl+N+n+o+e,3,i+f+xS+" +k=1"+m+p+d+Vs+o+e,1,i+f+xS+pt+m+p+b+y+o+e,1,u+uu+_+O_+o+e,1,i+Tn+wi+" +k=1"+R+Tt+M+o+e,1,i+Tn+dy+" +k=1"+R+Tt+M+o+e,1,i+Tn+py+" +k=1"+R+Tt+M+o+e,1,Ln+" +lat_0=25.38236111111111 +lon_0=50.76138888888889"+ye+ni+Cs+o+e,1,i+f+Va+pt+m+p+r+Xm+o+e,1,l+_h+vh+Qu+" +k_0=1"+Z+" +y_0=-52684.972"+_+o+e,1,l+_h+vh+Qu+" +k_0=1"+R+" +y_0=147315.028"+_+o+e,1,l+_h+vh+Qu+" +k_0=1"+m+" +y_0=447315.028"+_+o+e,1,l+_h+vh+Qu+" +k_0=1 +x_0=-17044 +y_0=-23139.97"+_+o+e,1,i+" +lat_0=-36.87972222222222 +lon_0=174.7641666666667"+x+V+hn+r+n+o+e,1,i+" +lat_0=-37.76111111111111 +lon_0=176.4661111111111 +k=1"+V+hn+r+n+o+e,1,i+" +lat_0=-38.62444444444444 +lon_0=177.8855555555556 +k=1"+V+hn+r+n+o+e,1,i+" +lat_0=-39.65083333333333 +lon_0=176.6736111111111 +k=1"+V+hn+r+n+o+e,1,i+" +lat_0=-39.13555555555556 +lon_0=174.2277777777778 +k=1"+V+hn+r+n+o+e,1,i+" +lat_0=-39.51222222222222 +lon_0=175.64 +k=1"+V+hn+r+n+o+e,1,i+" +lat_0=-40.24194444444444 +lon_0=175.4880555555555 +k=1"+V+hn+r+n+o+e,1,i+" +lat_0=-40.92527777777777 +lon_0=175.6472222222222 +k=1"+V+hn+r+n+o+e,1,i+" +lat_0=-41.3011111111111 +lon_0=174.7763888888889 +k=1"+V+hn+r+n+o+e,1,i+" +lat_0=-40.71472222222223 +lon_0=172.6719444444444 +k=1"+V+hn+r+n+o+e,1,i+" +lat_0=-41.27444444444444 +lon_0=173.2991666666667 +k=1"+V+hn+r+n+o+e,1,i+" +lat_0=-41.28972222222222 +lon_0=172.1088888888889 +k=1"+V+hn+r+n+o+e,1,i+" +lat_0=-41.81055555555555 +lon_0=171.5811111111111 +k=1"+V+hn+r+n+o+e,1,i+" +lat_0=-42.33361111111111 +lon_0=171.5497222222222 +k=1"+V+hn+r+n+o+e,1,i+" +lat_0=-42.68888888888888 +lon_0=173.01 +k=1"+V+hn+r+n+o+e,1,i+" +lat_0=-41.54444444444444 +lon_0=173.8019444444444 +k=1"+V+hn+r+n+o+e,1,i+" +lat_0=-42.88611111111111 +lon_0=170.9797222222222 +k=1"+V+hn+r+n+o+e,1,i+" +lat_0=-43.11 +lon_0=170.2608333333333 +k=1"+V+hn+r+n+o+e,1,i+" +lat_0=-43.97777777777778 +lon_0=168.6061111111111 +k=1"+V+hn+r+n+o+e,1,i+" +lat_0=-43.59055555555556 +lon_0=172.7269444444445 +k=1"+V+hn+r+n+o+e,1,i+" +lat_0=-43.74861111111111 +lon_0=171.3605555555555 +k=1"+V+hn+r+n+o+e,1,i+" +lat_0=-44.40194444444445 +lon_0=171.0572222222222 +k=1"+V+hn+r+n+o+e,1,i+" +lat_0=-44.735 +lon_0=169.4675 +k=1"+V+hn+r+n+o+e,1,i+" +lat_0=-45.13277777777778 +lon_0=168.3986111111111 +k=1"+V+hn+r+n+o+e,1,i+" +lat_0=-45.56361111111111 +lon_0=167.7386111111111 +k=1"+V+hn+r+n+o+e,1,i+" +lat_0=-45.81611111111111 +lon_0=170.6283333333333 +k=1"+V+hn+r+n+o+e,1,i+" +lat_0=-45.86138888888889 +lon_0=170.2825"+tm+V+hn+r+n+o+e,1,i+" +lat_0=-46.6 +lon_0=168.3427777777778 +k=1"+V+hn+r+n+o+e,1,u+Pc+G+r+n+o+e,1,u+_d+G+r+n+o+e,1,u+Bp+G+r+n+o+e,1,i+ew+" +lon_0=-1"+my+" +x_0=274319.7391633579"+p+og+Ea+Df+Ff+e,1,i+f+" +lon_0=-1"+pt+m+p+og+Ea+Df+o+e,1,l+wv+ud+hl+Ys+Z+p+j+o+e,16,l+Zh+" +lat_2=44"+El+yp+pi+" +y_0=6600000"+r+n+o+e,3,i+lk+" +lon_0=-8 +k=0.99982"+E+pf+r+n+o+e,1,u+ju+r+n+o+e,1,i+nw+" +lon_0=-12 +k=1 +x_0=152399.8550907544"+p+og+Ea+Ff+e,1,i+nw+" +lon_0=-12 +k=1 +x_0=243839.7681452071 +y_0=182879.8261089053"+og+Ea+Ff+e,1,u+uu+T+Yd+o+e,1,u+ju+T+Yd+o+e,1,ya+tl+pn+Z+p+" +a=6370997 +b=6370997"+o+e,1,i+f+" +lon_0=-5"+pt+m+p+T+Xl+o+e,1,i+f+" +lon_0=-5"+pt+m+p+T+Ha+o+e,4,i+" +lat_0=49.83333333333334"+rw+" +k=1"+tp+ni+_+Lu+o+e,3,us+" +lat_0=53.00194444444445 +lon_0=21.50277777777778"+xv+" +x_0=4603000 +y_0=5806000"+d+C+o+e,1,us+" +lat_0=53.58333333333334 +lon_0=17.00833333333333"+xv+" +x_0=3501000 +y_0=5999000"+d+C+o+e,1,us+" +lat_0=51.67083333333333 +lon_0=16.67222222222222"+xv+" +x_0=3703000 +y_0=5627000"+d+C+o+e,1,i+f+" +lon_0=18.95833333333333 +k=0.999983 +x_0=237000 +y_0=-4700000"+d+C+o+e,1,i+f+Ss+uk+Si+p+r+n+o+e,1,i+f+Gm+uk+Cu+p+r+n+o+e,1,i+f+As+uk+Xa+p+r+n+o+e,1,i+f+Va+uk+Kc+p+r+n+o+e,1,i+f+Og+" +k=0.9993"+m+" +y_0=-5300000"+r+n+o+e,8,u+vd+_+p_+o+e,1,u+_p+_+m_+o+e,1,u+_p+_+P_+o+e,3,i+f+" +lon_0=173"+pt+" +x_0=1600000"+jt+r+n+o+e,2,u+F_+G+r+n+o+e,1,i+f+" +lon_0=9.5"+cn+R+p+r+n+o+e,1,i+f+Wa+cn+m+p+r+n+o+e,1,i+f+Ss+" +k=1"+sa+p+r+n+o+e,2,us+El+nM+Fy+at+hn+em+Ps+o+e,1,u+Ga+r+n+o+e,1,u+wa+r+n+o+e,1,u+Us+r+n+o+e,1,l+" +lat_1=35.25 +lat_2=36.41666666666666 +lat_0=34.66666666666666"+Vc+A+vm+S+h+e,1,l+Yt+mr+sr+ku+m+p+r+n+o+e,1,i+f+ea+" +k=1"+Yc+p+_+U+o+e,1,i+f+cl+" +k=1"+rc+p+_+U+o+e,1,i+f+Za+" +k=1"+Su+p+_+U+o+e,1,i+f+Fp+" +k=1"+ic+p+_+U+o+e,1,i+f+Wh+" +k=1"+aa+p+_+U+o+e,1,i+f+Up+" +k=1"+Bs+p+_+U+o+e,1,i+f+eu+" +k=1"+Ia+p+_+U+o+e,1,i+f+cl+pt+m+p+r+n+o+e,2,u+Yl+vt+he+Mg+o+e,1,u+Ml+_+Nf+o+e,1,u+Lc+_+Nf+o+e,2,u+wa+em+Ps+o+e,1,u+Us+em+Ps+o+e,2,i+Re+jn+x+mi+p+r+n+W+e,1,i+Re+Nn+x+mi+p+r+n+W+e,1,i+Re+Ll+re+mi+p+r+n+W+e,1,l+gr+xu+X+Gs+Et+nt+r+n+h+e,1,l+yr+_r+$+Gs+Et+nt+r+n+h+e,1,l+Ut+vr+mf+lt+Et+nt+r+n+h+e,1,l+Vh+zm+br+gf+Et+nt+r+n+h+e,1,l+wr+xr+yf+Cl+Et+nt+r+n+h+e,1,l+kr+Sr+Mr+Il+Et+nt+r+n+h+e,1,l+Mi+Ai+X+ke+Ze+an+r+n+h+e,1,l+Qh+Kh+bn+ke+Ze+an+r+n+h+e,1,l+Ut+Ar+L+ke+Ze+an+r+n+h+e,1,l+Er+_f+Cr+Mu+Ic+Rc+r+n+h+e,1,i+Tn+Bn+vf+rt+p+r+n+h+e,1,i+Gt+dn+Bt+rt+p+r+n+h+e,1,i+Gt+ep+Bt+rt+p+r+n+h+e,1,l+Yh+Tr+Hm+Xh+E+p+r+n+h+e,1,i+Es+Dn+x+rt+p+r+n+h+e,1,i+Es+Fn+x+ln+p+r+n+h+e,1,i+z+Un+se+rt+p+r+n+h+e,1,i+z+hu+se+it+p+r+n+h+e,1,i+z+Rl+re+jc+p+r+n+h+e,3,l+Yt+mr+sr+ku+it+p+r+n+h+e,1,l+Ei+Ci+tt+gi+it+nt+r+n+h+e,1,l+Xc+Ed+$+lc+Nc+p+r+n+h+e,1,l+Ti+Or+Al+Vo+rt+pf+r+n+h+e,1,l+Oi+Pi+Al+Ya+it+p+r+n+h+e,1,l+Li+Ii+Ri+gu+Bc+p+r+n+W+e,1,l+Cd+ji+Ni+ee+Dc+p+r+n+W+e,1,l+Fe+Td+Po+ee+Vd+p+r+n+W+e,1,i+xa+Gn+cn+ne+p+r+n+h+e,1,i+xa+We+cn+ln+p+r+n+h+e,1,l+Zh+Lg+Jc+rl+cr+p+r+n+W+e,1,i+Re+zn+Ma+Od+p+r+n+h+e,1,i+Re+jl+x+it+p+r+n+h+e,1,i+Re+Hn+Nl+Fc+p+r+n+h+e,1,i+Xt+Os+x+Ne+p+r+n+h+e,1,i+jo+qn+Ct+Uc+p+r+n+h+e,1,i+jo+Zn+Ct+Gc+p+r+n+h+e,1,l+Pr+Lr+Jt+np+ne+p+r+n+h+e,1,l+Bi+Di+Jh+Jf+A+p+r+n+h+e,1,l+ie+Fi+fl+yi+cr+p+r+n+W+e,1,l+Ui+Gi+Ee+yi+cr+p+r+n+W+e,1,l+Ir+zi+qm+Co+E+p+r+n+h+e,1,l+Hi+qi+Rr+Co+E+p+r+n+h+e,1,l+Gp+wn+ut+lt+Wu+p+r+n+W+e,1,l+zp+xn+z+lt+Vu+p+r+n+W+e,1,l+$c+Zi+Jt+_i+E+p+r+n+h+e,1,l+jr+Nr+X+_i+E+p+r+n+h+e,1,l+Wi+Pd+Br+dn+Ld+p+r+n+W+e,1,l+Vi+tf+$t+Vc+E+p+r+n+h+e,1,l+Qi+ef+Zm+Au+rt+un+r+n+h+e,1,l+Ki+Yi+Dr+yn+E+Ls+r+n+h+e,1,l+Xi+Ji+kn+Pt+ln+Io+r+n+h+e,1,l+$i+to+Fr+yu+E+sd+r+n+h+e,1,l+Je+$e+Sn+yn+ne+ad+r+n+h+e,1,l+kt+tn+Ue+oe+_s+bm+r+n+W+e,1,l+zl+en+mt+oe+_s+Wg+r+n+W+e,1,l+Hl+nn+L+oe+_s+Vg+r+n+W+e,1,l+Id+eo+$+Qo+Is+Ls+r+n+h+e,1,l+Yt+Ur+tt+Qo+Is+un+r+n+h+e,1,l+ie+Rd+fl+Wn+it+p+r+n+h+e,1,l+no+ro+Gr+lt+it+p+r+n+h+e,1,l+io+oo+zr+He+E+p+r+n+h+e,1,l+cu+nf+ht+He+E+p+r+n+h+e,1,l+so+ao+Hp+He+E+p+r+n+h+e,1,us+" +lat_0=47.25"+sg+Fy+pi+Tl+em+Ps+o+e,4,i+f+Dg+x+ur+p+em+Ps+o+e,1,i+f+Fg+x+Si+p+em+Ps+o+e,13,i+f+" +lon_0=109"+pt+m+jt+M+Pn+o+e,1,i+f+" +lon_0=116"+pt+m+jt+v+o+e,1,i+f+xl+pt+m+jt+v+o+e,1,i+f+bS+pt+m+p+v+o+e,1,u+Bu+T+o+e,1,u+Bu+T+o+e,1,Ln+iw+Fv+" +x_0=86501.46392052001"+xM+xi+ki+Vl+zc+e,1,u+wa+G+_+Ge+o+e,1,u+Us+G+_+Ge+o+e,1,l+" +lat_1=9 +lat_2=3 +lat_0=6"+nm+xe+st+_+xt+o+e,1,l+" +lat_1=17 +lat_2=33 +lat_0=25.08951"+Ny+Z+p+_+Rn+o+e,1,i+f+ea+" +k=1"+m+p+_+U+o+e,1,i+f+cl+" +k=1"+m+p+_+U+o+e,1,i+f+Za+" +k=1"+m+p+_+U+o+e,1,i+f+Fp+" +k=1"+m+p+_+U+o+e,1,i+f+Wh+" +k=1"+m+p+_+U+o+e,1,i+f+Up+" +k=1"+m+p+_+U+o+e,1,i+f+eu+" +k=1"+m+p+_+U+o+e,1,i+ow+sw+" +k=1 +x_0=836694.05 +y_0=819069.8"+_+mu+o+e,1,i+f+na+" +k=1"+aa+p+Ht+O+o+e,1,i+f+ra+" +k=1"+Bs+p+Ht+O+o+e,1,i+f+ga+" +k=1"+Ia+p+Ht+O+o+e,1,i+f+ia+" +k=1"+Ra+p+Ht+O+o+e,1,i+f+oa+" +k=1"+Ol+p+Ht+O+o+e,1,i+f+oi+" +k=1"+Pa+p+Ht+O+o+e,1,i+f+Go+" +k=1"+La+p+Ht+O+o+e,1,i+f+To+" +k=1"+la+p+Ht+O+o+e,1,i+f+Ro+" +k=1"+ja+p+Ht+O+o+e,1,i+f+wi+" +k=1"+ua+p+Ht+O+o+e,1,i+f+Oo+" +k=1"+Na+p+Ht+O+o+e,1,i+f+na+" +k=1"+m+p+Ht+O+o+e,1,i+f+ra+" +k=1"+m+p+Ht+O+o+e,1,i+f+ga+" +k=1"+m+p+Ht+O+o+e,1,i+f+ia+" +k=1"+m+p+Ht+O+o+e,1,i+f+oa+" +k=1"+m+p+Ht+O+o+e,1,i+f+oi+" +k=1"+m+p+Ht+O+o+e,1,i+f+Go+" +k=1"+m+p+Ht+O+o+e,1,i+f+To+" +k=1"+m+p+Ht+O+o+e,1,i+f+Ro+" +k=1"+m+p+Ht+O+o+e,1,i+f+wi+" +k=1"+m+p+Ht+O+o+e,1,i+f+Oo+" +k=1"+m+p+Ht+O+o+e,1,i+f+na+" +k=1"+Ba+p+Ht+O+o+e,1,i+f+Sc+" +k=1"+Da+p+Ht+O+o+e,1,i+f+ra+" +k=1"+Fa+p+Ht+O+o+e,1,i+f+hd+" +k=1"+Ua+p+Ht+O+o+e,1,i+f+ga+" +k=1"+Ds+p+Ht+O+o+e,1,i+f+Ta+" +k=1"+il+p+Ht+O+o+e,1,i+f+ia+" +k=1"+ys+p+Ht+O+o+e,1,i+f+df+" +k=1"+ol+p+Ht+O+o+e,1,i+f+oa+" +k=1"+Pl+p+Ht+O+o+e,1,i+f+_u+" +k=1"+Sf+p+Ht+O+o+e,1,i+f+oi+" +k=1"+Mf+p+Ht+O+o+e,1,i+f+uc+" +k=1"+Af+p+Ht+O+o+e,1,i+f+Go+" +k=1"+Ef+p+Ht+O+o+e,1,i+f+kl+" +k=1"+Cf+p+Ht+O+o+e,1,i+f+To+" +k=1"+Tf+p+Ht+O+o+e,1,i+f+Uu+" +k=1"+Of+p+Ht+O+o+e,1,i+f+Ro+" +k=1"+Pf+p+Ht+O+o+e,1,i+f+vu+" +k=1"+ap+p+Ht+O+o+e,1,i+f+wi+" +k=1"+Lf+p+Ht+O+o+e,1,i+f+xl+" +k=1"+lp+p+Ht+O+o+e,1,i+f+Oo+" +k=1"+If+p+Ht+O+o+e,1,i+f+na+" +k=1"+m+p+Ht+O+o+e,1,i+f+Sc+" +k=1"+m+p+Ht+O+o+e,1,i+f+ra+" +k=1"+m+p+Ht+O+o+e,1,i+f+hd+" +k=1"+m+p+Ht+O+o+e,1,i+f+ga+" +k=1"+m+p+Ht+O+o+e,1,i+f+Ta+" +k=1"+m+p+Ht+O+o+e,1,i+f+ia+" +k=1"+m+p+Ht+O+o+e,1,i+f+df+" +k=1"+m+p+Ht+O+o+e,1,i+f+oa+" +k=1"+m+p+Ht+O+o+e,1,i+f+_u+" +k=1"+m+p+Ht+O+o+e,1,i+f+oi+" +k=1"+m+p+Ht+O+o+e,1,i+f+uc+" +k=1"+m+p+Ht+O+o+e,1,i+f+Go+" +k=1"+m+p+Ht+O+o+e,1,i+f+kl+" +k=1"+m+p+Ht+O+o+e,1,i+f+To+" +k=1"+m+p+Ht+O+o+e,1,i+f+Uu+" +k=1"+m+p+Ht+O+o+e,1,i+f+Ro+" +k=1"+m+p+Ht+O+o+e,1,i+f+vu+" +k=1"+m+p+Ht+O+o+e,1,i+f+wi+" +k=1"+m+p+Ht+O+o+e,1,i+f+xl+" +k=1"+m+p+Ht+O+o+e,1,i+f+Oo+" +k=1"+m+p+Ht+O+o+e,1,i+f+As+" +k=1"+bt+p+_+qt+o+e,1,i+f+Va+" +k=1"+On+p+_+qt+o+e,1,i+f+ea+" +k=1"+Be+p+_+qt+o+e,1,i+f+cl+" +k=1"+ur+p+_+qt+o+e,1,i+f+eu+" +k=1"+Kc+p+d+Uf+o+e,1,i+f+qp+" +k=1"+Yc+p+d+Uf+o+e,1,i+f+Nu+" +k=1"+Be+p+d+zt+o+e,1,i+f+Wa+" +k=1"+ur+p+d+zt+o+e,1,i+f+Ss+" +k=1"+Si+p+d+zt+o+e,2,i+f+na+" +k=1"+Ba+p+d+w+o+e,1,i+f+Sc+" +k=1"+Da+p+d+w+o+e,1,i+f+ra+" +k=1"+Fa+p+d+w+o+e,1,i+f+hd+" +k=1"+Ua+p+d+w+o+e,1,i+f+ga+" +k=1"+Ds+p+d+w+o+e,1,i+f+Ta+" +k=1"+il+p+d+w+o+e,1,i+f+ia+" +k=1"+ys+p+d+w+o+e,1,i+f+df+" +k=1"+ol+p+d+w+o+e,1,i+f+oa+" +k=1"+Pl+p+d+w+o+e,1,i+f+_u+" +k=1"+Sf+p+d+w+o+e,1,i+f+oi+" +k=1"+Mf+p+d+w+o+e,1,i+f+uc+" +k=1"+Af+p+d+w+o+e,1,i+f+Go+" +k=1"+Ef+p+d+w+o+e,1,i+f+kl+" +k=1"+Cf+p+d+w+o+e,1,i+f+To+" +k=1"+Tf+p+d+w+o+e,1,i+f+Uu+" +k=1"+Of+p+d+w+o+e,1,i+f+Ro+" +k=1"+Pf+p+d+w+o+e,1,i+f+vu+" +k=1"+ap+p+d+w+o+e,1,i+f+wi+" +k=1"+Lf+p+d+w+o+e,1,i+f+xl+" +k=1"+lp+p+d+w+o+e,1,i+f+Oo+" +k=1"+If+p+d+w+o+e,1,i+f+na+" +k=1"+m+p+d+w+o+e,1,i+f+Sc+" +k=1"+m+p+d+w+o+e,1,i+f+ra+" +k=1"+m+p+d+w+o+e,1,i+f+hd+" +k=1"+m+p+d+w+o+e,1,i+f+ga+" +k=1"+m+p+d+w+o+e,1,i+f+Ta+" +k=1"+m+p+d+w+o+e,1,i+f+ia+" +k=1"+m+p+d+w+o+e,1,i+f+df+" +k=1"+m+p+d+w+o+e,1,i+f+oa+" +k=1"+m+p+d+w+o+e,1,i+f+_u+" +k=1"+m+p+d+w+o+e,1,i+f+oi+" +k=1"+m+p+d+w+o+e,1,i+f+uc+" +k=1"+m+p+d+w+o+e,1,i+f+Go+" +k=1"+m+p+d+w+o+e,1,i+f+kl+" +k=1"+m+p+d+w+o+e,1,i+f+To+" +k=1"+m+p+d+w+o+e,1,i+f+Uu+" +k=1"+m+p+d+w+o+e,1,i+f+Ro+" +k=1"+m+p+d+w+o+e,1,i+f+vu+" +k=1"+m+p+d+w+o+e,1,i+f+wi+" +k=1"+m+p+d+w+o+e,1,i+f+xl+" +k=1"+m+p+d+w+o+e,1,i+f+Oo+" +k=1"+m+p+d+w+o+e,1,i+Zp+rM+x+Z+p+r+n+o+e,1,i+Zp+$f+x+Z+p+r+n+o+e,1,i+es+kp+x+Z+p+r+n+o+e,1,i+Zp+tv+x+Z+p+r+n+o+e,1,i+es+Sp+x+Z+p+r+n+o+e,1,i+es+gy+x+Z+p+r+n+o+e,1,i+es+Mp+x+Z+p+r+n+o+e,1,i+es+iM+x+Z+p+r+n+o+e,1,i+es+Ap+x+Z+p+r+n+o+e,1,i+jo+Ep+x+Z+p+r+n+o+e,1,i+hl+dS+x+Z+p+r+n+o+e,1,i+hl+pS+x+Z+p+r+n+o+e,1,i+hl+mS+x+Z+p+r+n+o+e,1,i+el+" +lon_0=142"+x+Z+p+r+n+o+e,1,i+el+am+x+Z+p+r+n+o+e,1,i+el+" +lon_0=124"+x+Z+p+r+n+o+e,1,i+el+$f+x+Z+p+r+n+o+e,1,i+" +lat_0=20"+gy+x+Z+p+r+n+o+e,1,i+el+kS+x+Z+p+r+n+o+e,1,i+f+As+" +k=1"+ur+p+d+o+e,1,i+f+As+" +k=1"+m+p+d+a+o+e,1,i+f+ea+" +k=1"+m+p+d+a+o+e,1,i+f+Za+" +k=1"+m+p+d+a+o+e,1,i+f+Wh+" +k=1"+m+p+d+a+o+e,1,i+f+eu+" +k=1"+m+p+d+a+o+e,1,i+f+qp+" +k=1"+m+p+d+a+o+e,1,i+f+Ig+" +k=1"+m+p+d+a+o+e,1,i+f+Wm+" +k=1"+m+p+d+a+o+e,1,i+f+Rg+" +k=1"+m+p+d+a+o+e,1,i+f+na+" +k=1"+m+p+d+a+o+e,1,i+f+ra+" +k=1"+m+p+d+a+o+e,1,i+f+ga+" +k=1"+m+p+d+a+o+e,1,i+f+ia+" +k=1"+m+p+d+a+o+e,1,i+f+oa+" +k=1"+m+p+d+a+o+e,1,i+f+oi+" +k=1"+m+p+d+a+o+e,1,i+f+Go+" +k=1"+m+p+d+a+o+e,1,i+f+To+" +k=1"+m+p+d+a+o+e,1,i+f+Ro+" +k=1"+m+p+d+a+o+e,1,i+f+wi+" +k=1"+m+p+d+a+o+e,1,i+f+Oo+" +k=1"+m+p+d+a+o+e,1,i+f+rm+" +k=1"+m+p+d+a+o+e,1,i+f+rp+" +k=1"+m+p+d+a+o+e,1,i+f+td+" +k=1"+m+p+d+a+o+e,1,i+f+im+" +k=1"+m+p+d+a+o+e,1,i+f+ed+" +k=1"+m+p+d+a+o+e,1,i+f+hc+" +k=1"+m+p+d+a+o+e,1,i+f+Gu+" +k=1"+m+p+d+a+o+e,1,i+f+zu+" +k=1"+m+p+d+a+o+e,1,i+f+fc+" +k=1"+m+p+d+a+o+e,3,i+f+As+" +k=1"+m+p+d+s+o+e,1,i+f+ea+" +k=1"+m+p+d+s+o+e,1,i+f+Za+" +k=1"+m+p+d+s+o+e,1,i+f+Wh+" +k=1"+m+p+d+s+o+e,1,i+f+eu+" +k=1"+m+p+d+s+o+e,1,i+f+qp+" +k=1"+m+p+d+s+o+e,1,i+f+Ig+" +k=1"+m+p+d+s+o+e,1,i+f+Wm+" +k=1"+m+p+d+s+o+e,1,i+f+Rg+" +k=1"+m+p+d+s+o+e,1,i+f+na+" +k=1"+m+p+d+s+o+e,1,i+f+ra+" +k=1"+m+p+d+s+o+e,1,i+f+ga+" +k=1"+m+p+d+s+o+e,1,i+f+ia+" +k=1"+m+p+d+s+o+e,1,i+f+oa+" +k=1"+m+p+d+s+o+e,1,i+f+oi+" +k=1"+m+p+d+s+o+e,1,i+f+Go+" +k=1"+m+p+d+s+o+e,1,i+f+To+" +k=1"+m+p+d+s+o+e,1,i+f+Ro+" +k=1"+m+p+d+s+o+e,1,i+f+wi+" +k=1"+m+p+d+s+o+e,1,i+f+Oo+" +k=1"+m+p+d+s+o+e,1,i+f+rm+" +k=1"+m+p+d+s+o+e,1,i+f+rp+" +k=1"+m+p+d+s+o+e,1,i+f+td+" +k=1"+m+p+d+s+o+e,1,i+f+im+" +k=1"+m+p+d+s+o+e,1,i+f+ed+" +k=1"+m+p+d+s+o+e,1,i+f+hc+" +k=1"+m+p+d+s+o+e,1,i+f+Gu+" +k=1"+m+p+d+s+o+e,1,i+f+zu+" +k=1"+m+p+d+s+o+e,1,i+f+fc+" +k=1"+m+p+d+s+o+e,1,i+f+As+" +k=1"+Xa+p+d+s+o+e,1,i+f+Va+" +k=1"+Kc+p+d+s+o+e,1,i+f+ea+" +k=1"+Yc+p+d+s+o+e,1,i+f+cl+" +k=1"+rc+p+d+s+o+e,1,i+f+Za+" +k=1"+Su+p+d+s+o+e,1,i+f+Fp+" +k=1"+ic+p+d+s+o+e,1,i+f+Wh+" +k=1"+aa+p+d+s+o+e,1,i+f+Up+" +k=1"+Bs+p+d+s+o+e,1,i+f+eu+" +k=1"+Ia+p+d+s+o+e,1,i+f+Ny+" +k=1"+Ra+p+d+s+o+e,1,i+f+qp+" +k=1"+Ol+p+d+s+o+e,1,i+f+By+" +k=1"+Pa+p+d+s+o+e,1,i+f+Ig+" +k=1"+La+p+d+s+o+e,1,i+f+" +lon_0=60 +k=1"+la+p+d+s+o+e,1,i+f+Wm+" +k=1"+ja+p+d+s+o+e,1,i+f+kv+" +k=1"+ua+p+d+s+o+e,1,i+f+Rg+" +k=1"+Na+p+d+s+o+e,1,i+f+$k+" +k=1"+oc+p+d+s+o+e,1,i+f+na+" +k=1"+Ba+p+d+s+o+e,1,i+f+Sc+" +k=1"+Da+p+d+s+o+e,1,i+f+ra+" +k=1"+Fa+p+d+s+o+e,1,i+f+hd+" +k=1"+Ua+p+d+s+o+e,1,i+f+ga+" +k=1"+Ds+p+d+s+o+e,1,i+f+Ta+" +k=1"+il+p+d+s+o+e,1,i+f+ia+" +k=1"+ys+p+d+s+o+e,1,i+f+df+" +k=1"+ol+p+d+s+o+e,1,i+f+oa+" +k=1"+Pl+p+d+s+o+e,2,i+f+_u+" +k=1"+Sf+p+d+s+o+e,1,i+f+oi+" +k=1"+Mf+p+d+s+o+e,1,i+f+uc+" +k=1"+Af+p+d+s+o+e,1,i+f+Go+" +k=1"+Ef+p+d+s+o+e,1,i+f+kl+" +k=1"+Cf+p+d+s+o+e,1,i+f+To+" +k=1"+Tf+p+d+s+o+e,1,i+f+Uu+" +k=1"+Of+p+d+s+o+e,1,i+f+Ro+" +k=1"+Pf+p+d+s+o+e,1,i+f+vu+" +k=1"+ap+p+d+s+o+e,1,i+f+wi+" +k=1"+Lf+p+d+s+o+e,1,i+f+xl+" +k=1"+lp+p+d+s+o+e,1,i+f+Oo+" +k=1"+If+p+d+s+o+e,1,i+f+yy+" +k=1 +x_0=46500000"+p+d+s+o+e,1,i+f+rm+" +k=1"+gS+p+d+s+o+e,1,i+f+Tv+" +k=1 +x_0=48500000"+p+d+s+o+e,1,i+f+rp+" +k=1 +x_0=49500000"+p+d+s+o+e,1,i+f+ip+" +k=1 +x_0=50500000"+p+d+s+o+e,1,i+f+td+" +k=1 +x_0=51500000"+p+d+s+o+e,1,i+f+SS+" +k=1 +x_0=52500000"+p+d+s+o+e,1,i+f+im+" +k=1 +x_0=53500000"+p+d+s+o+e,1,i+f+ag+" +k=1 +x_0=54500000"+p+d+s+o+e,1,i+f+ed+" +k=1 +x_0=55500000"+p+d+s+o+e,1,i+f+Ov+" +k=1 +x_0=56500000"+p+d+s+o+e,1,i+f+hc+" +k=1 +x_0=57500000"+p+d+s+o+e,1,i+f+Pv+" +k=1 +x_0=58500000"+p+d+s+o+e,1,i+f+Gu+" +k=1 +x_0=59500000"+p+d+s+o+e,2,i+f+zu+" +k=1 +x_0=61500000"+p+d+s+o+e,1,i+f+Uy+" +k=1 +x_0=62500000"+p+d+s+o+e,1,i+f+fc+" +k=1 +x_0=63500000"+p+d+s+o+e,1,i+f+Gy+" +k=1 +x_0=64500000"+p+d+s+o+e,1,i+f+As+" +k=1"+m+p+d+s+o+e,1,i+f+Va+" +k=1"+m+p+d+s+o+e,1,i+f+ea+" +k=1"+m+p+d+s+o+e,1,i+f+cl+" +k=1"+m+p+d+s+o+e,1,i+f+Za+" +k=1"+m+p+d+s+o+e,1,i+f+Fp+" +k=1"+m+p+d+s+o+e,1,i+f+Wh+" +k=1"+m+p+d+s+o+e,1,i+f+Up+" +k=1"+m+p+d+s+o+e,1,i+f+eu+" +k=1"+m+p+d+s+o+e,1,i+f+Ny+" +k=1"+m+p+d+s+o+e,1,i+f+qp+" +k=1"+m+p+d+s+o+e,1,i+f+By+" +k=1"+m+p+d+s+o+e,1,i+f+Ig+" +k=1"+m+p+d+s+o+e,1,i+f+" +lon_0=60 +k=1"+m+p+d+s+o+e,1,i+f+Wm+" +k=1"+m+p+d+s+o+e,1,i+f+kv+" +k=1"+m+p+d+s+o+e,1,i+f+Rg+" +k=1"+m+p+d+s+o+e,1,i+f+$k+" +k=1"+m+p+d+s+o+e,2,i+f+na+" +k=1"+m+p+d+s+o+e,1,i+f+Sc+" +k=1"+m+p+d+s+o+e,1,i+f+ra+" +k=1"+m+p+d+s+o+e,1,i+f+hd+" +k=1"+m+p+d+s+o+e,1,i+f+ga+" +k=1"+m+p+d+s+o+e,1,i+f+Ta+" +k=1"+m+p+d+s+o+e,1,i+f+ia+" +k=1"+m+p+d+s+o+e,1,i+f+df+" +k=1"+m+p+d+s+o+e,1,i+f+oa+" +k=1"+m+p+d+s+o+e,1,i+f+_u+" +k=1"+m+p+d+s+o+e,1,i+f+oi+" +k=1"+m+p+d+s+o+e,1,i+f+uc+" +k=1"+m+p+d+s+o+e,1,i+f+Go+" +k=1"+m+p+d+s+o+e,1,i+f+kl+" +k=1"+m+p+d+s+o+e,1,i+f+To+" +k=1"+m+p+d+s+o+e,1,i+f+Uu+" +k=1"+m+p+d+s+o+e,1,i+f+Ro+" +k=1"+m+p+d+s+o+e,1,i+f+vu+" +k=1"+m+p+d+s+o+e,1,i+f+wi+" +k=1"+m+p+d+s+o+e,1,i+f+xl+" +k=1"+m+p+d+s+o+e,1,i+f+Oo+" +k=1"+m+p+d+s+o+e,1,i+f+yy+" +k=1"+m+p+d+s+o+e,1,i+f+rm+" +k=1"+m+p+d+s+o+e,1,i+f+Tv+" +k=1"+m+p+d+s+o+e,1,i+f+rp+" +k=1"+m+p+d+s+o+e,1,i+f+ip+" +k=1"+m+p+d+s+o+e,1,i+f+td+" +k=1"+m+p+d+s+o+e,1,i+f+SS+" +k=1"+m+p+d+s+o+e,1,i+f+im+" +k=1"+m+p+d+s+o+e,1,i+f+ag+" +k=1"+m+p+d+s+o+e,1,i+f+ed+" +k=1"+m+p+d+s+o+e,1,i+f+Ov+" +k=1"+m+p+d+s+o+e,1,i+f+hc+" +k=1"+m+p+d+s+o+e,1,i+f+Pv+" +k=1"+m+p+d+s+o+e,1,i+f+Gu+" +k=1"+m+p+d+s+o+e,1,i+f+_y+" +k=1"+m+p+d+s+o+e,1,i+f+zu+" +k=1"+m+p+d+s+o+e,1,i+f+Uy+" +k=1"+m+p+d+s+o+e,1,i+f+fc+" +k=1"+m+p+d+s+o+e,1,i+f+Gy+" +k=1"+m+p+d+s+o+e,1,i+f+As+" +k=1"+Xa+p+d+a+o+e,1,i+f+Va+" +k=1"+Kc+p+d+a+o+e,1,i+f+ea+" +k=1"+Yc+p+d+a+o+e,1,i+f+cl+" +k=1"+rc+p+d+a+o+e,1,i+f+Za+" +k=1"+Su+p+d+a+o+e,1,i+f+Fp+" +k=1"+ic+p+d+a+o+e,1,i+f+Wh+" +k=1"+aa+p+d+a+o+e,1,i+f+Up+" +k=1"+Bs+p+d+a+o+e,1,i+f+eu+" +k=1"+Ia+p+d+a+o+e,1,i+f+Ny+" +k=1"+Ra+p+d+a+o+e,1,i+f+qp+" +k=1"+Ol+p+d+a+o+e,1,i+f+By+" +k=1"+Pa+p+d+a+o+e,1,i+f+Ig+" +k=1"+La+p+d+a+o+e,1,i+f+" +lon_0=60 +k=1"+la+p+d+a+o+e,1,i+f+Wm+" +k=1"+ja+p+d+a+o+e,1,i+f+kv+" +k=1"+ua+p+d+a+o+e,1,i+f+Rg+" +k=1"+Na+p+d+a+o+e,1,i+f+$k+" +k=1"+oc+p+d+a+o+e,1,i+f+na+" +k=1"+Ba+p+d+a+o+e,1,i+f+Sc+" +k=1"+Da+p+d+a+o+e,1,i+f+ra+" +k=1"+Fa+p+d+a+o+e,1,i+f+hd+" +k=1"+Ua+p+d+a+o+e,1,i+f+ga+" +k=1"+Ds+p+d+a+o+e,1,i+f+Ta+" +k=1"+il+p+d+a+o+e,1,i+f+ia+" +k=1"+ys+p+d+a+o+e,1,i+f+df+" +k=1"+ol+p+d+a+o+e,1,i+f+oa+" +k=1"+Pl+p+d+a+o+e,1,i+f+_u+" +k=1"+Sf+p+d+a+o+e,1,i+f+oi+" +k=1"+Mf+p+d+a+o+e,1,i+f+uc+" +k=1"+Af+p+d+a+o+e,1,i+f+Go+" +k=1"+Ef+p+d+a+o+e,1,i+f+kl+" +k=1"+Cf+p+d+a+o+e,1,i+f+To+" +k=1"+Tf+p+d+a+o+e,1,i+f+Uu+" +k=1"+Of+p+d+a+o+e,1,i+f+Ro+" +k=1"+Pf+p+d+a+o+e,1,i+f+vu+" +k=1"+ap+p+d+a+o+e,1,i+f+wi+" +k=1"+Lf+p+d+a+o+e,1,i+f+xl+" +k=1"+lp+p+d+a+o+e,1,i+f+Oo+" +k=1"+If+p+d+a+o+e,1,i+f+yy+" +k=1 +x_0=46500000"+p+d+a+o+e,1,i+f+rm+" +k=1"+gS+p+d+a+o+e,1,i+f+Tv+" +k=1 +x_0=48500000"+p+d+a+o+e,1,i+f+rp+" +k=1 +x_0=49500000"+p+d+a+o+e,1,i+f+ip+" +k=1 +x_0=50500000"+p+d+a+o+e,1,i+f+td+" +k=1 +x_0=51500000"+p+d+a+o+e,1,i+f+SS+" +k=1 +x_0=52500000"+p+d+a+o+e,1,i+f+im+" +k=1 +x_0=53500000"+p+d+a+o+e,1,i+f+ag+" +k=1 +x_0=54500000"+p+d+a+o+e,1,i+f+ed+" +k=1 +x_0=55500000"+p+d+a+o+e,1,i+f+Ov+" +k=1 +x_0=56500000"+p+d+a+o+e,1,i+f+hc+" +k=1 +x_0=57500000"+p+d+a+o+e,1,i+f+Pv+" +k=1 +x_0=58500000"+p+d+a+o+e,1,i+f+Gu+" +k=1 +x_0=59500000"+p+d+a+o+e,2,i+f+zu+" +k=1 +x_0=61500000"+p+d+a+o+e,1,i+f+Uy+" +k=1 +x_0=62500000"+p+d+a+o+e,1,i+f+fc+" +k=1 +x_0=63500000"+p+d+a+o+e,1,i+f+Gy+" +k=1 +x_0=64500000"+p+d+a+o+e,1,i+f+As+" +k=1"+m+p+d+a+o+e,1,i+f+Va+" +k=1"+m+p+d+a+o+e,1,i+f+ea+" +k=1"+m+p+d+a+o+e,1,i+f+cl+" +k=1"+m+p+d+a+o+e,1,i+f+Za+" +k=1"+m+p+d+a+o+e,1,i+f+Fp+" +k=1"+m+p+d+a+o+e,1,i+f+Wh+" +k=1"+m+p+d+a+o+e,1,i+f+Up+" +k=1"+m+p+d+a+o+e,1,i+f+eu+" +k=1"+m+p+d+a+o+e,1,i+f+Ny+" +k=1"+m+p+d+a+o+e,1,i+f+qp+" +k=1"+m+p+d+a+o+e,1,i+f+By+" +k=1"+m+p+d+a+o+e,1,i+f+Ig+" +k=1"+m+p+d+a+o+e,1,i+f+" +lon_0=60 +k=1"+m+p+d+a+o+e,1,i+f+Wm+" +k=1"+m+p+d+a+o+e,1,i+f+kv+" +k=1"+m+p+d+a+o+e,1,i+f+Rg+" +k=1"+m+p+d+a+o+e,1,i+f+$k+" +k=1"+m+p+d+a+o+e,1,i+f+na+" +k=1"+m+p+d+a+o+e,1,i+f+Sc+" +k=1"+m+p+d+a+o+e,1,i+f+ra+" +k=1"+m+p+d+a+o+e,1,i+f+hd+" +k=1"+m+p+d+a+o+e,1,i+f+ga+" +k=1"+m+p+d+a+o+e,1,i+f+Ta+" +k=1"+m+p+d+a+o+e,1,i+f+ia+" +k=1"+m+p+d+a+o+e,1,i+f+df+" +k=1"+m+p+d+a+o+e,1,i+f+oa+" +k=1"+m+p+d+a+o+e,1,i+f+_u+" +k=1"+m+p+d+a+o+e,1,i+f+oi+" +k=1"+m+p+d+a+o+e,1,i+f+uc+" +k=1"+m+p+d+a+o+e,1,i+f+Go+" +k=1"+m+p+d+a+o+e,1,i+f+kl+" +k=1"+m+p+d+a+o+e,1,i+f+To+" +k=1"+m+p+d+a+o+e,1,i+f+Uu+" +k=1"+m+p+d+a+o+e,1,i+f+Ro+" +k=1"+m+p+d+a+o+e,1,i+f+vu+" +k=1"+m+p+d+a+o+e,1,i+f+wi+" +k=1"+m+p+d+a+o+e,1,u+uf+G+j+Ws+o+e,1,u+Du+G+j+Ws+o+e,1,i+f+xl+" +k=1"+m+p+d+a+o+e,1,i+f+Oo+" +k=1"+m+p+d+a+o+e,1,i+f+yy+" +k=1"+m+p+d+a+o+e,1,i+f+rm+" +k=1"+m+p+d+a+o+e,1,i+f+Tv+" +k=1"+m+p+d+a+o+e,1,i+f+rp+" +k=1"+m+p+d+a+o+e,1,i+f+ip+" +k=1"+m+p+d+a+o+e,1,i+f+td+" +k=1"+m+p+d+a+o+e,1,i+f+SS+" +k=1"+m+p+d+a+o+e,1,i+f+im+" +k=1"+m+p+d+a+o+e,1,i+f+ag+" +k=1"+m+p+d+a+o+e,1,i+f+ed+" +k=1"+m+p+d+a+o+e,1,i+f+Ov+" +k=1"+m+p+d+a+o+e,1,i+f+hc+" +k=1"+m+p+d+a+o+e,1,i+f+Pv+" +k=1"+m+p+d+a+o+e,1,i+f+Gu+" +k=1"+m+p+d+a+o+e,1,i+f+_y+" +k=1"+m+p+d+a+o+e,1,i+f+zu+" +k=1"+m+p+d+a+o+e,1,i+f+Uy+" +k=1"+m+p+d+a+o+e,1,i+f+fc+" +k=1"+m+p+d+a+o+e,1,i+f+Gy+" +k=1"+m+p+d+a+o+e,1,i+ul+sl+tm+R+p+r+n+o+e,1,i+Es+Wd+re+E+p+r+n+o+e,1,i+Re+jn+x+mi+p+r+n+o+e,1,i+Re+Nn+x+mi+p+r+n+o+e,1,i+Re+Ll+re+mi+p+r+n+o+e,1,l+Hr+qr+$t+qa+V+p+r+n+o+e,1,l+Zr+bf+Wr+qa+V+Tl+r+n+o+e,1,l+gr+xu+X+Gs+Ae+Tt+r+n+o+e,1,l+yr+_r+$+Gs+Ae+Tt+r+n+o+e,1,l+Ut+vr+mf+lt+Ae+Tt+r+n+o+e,1,l+Vh+zm+br+gf+Ae+Tt+r+n+o+e,1,l+wr+xr+yf+Cl+Ae+Tt+r+n+o+e,1,l+kr+Sr+Mr+Il+Ae+Tt+r+n+o+e,1,l+Mi+Ai+X+ke+Fo+Uo+r+n+o+e,1,l+Qh+Kh+bn+ke+Fo+Uo+r+n+o+e,1,l+Ut+Ar+L+ke+Fo+Uo+r+n+o+e,1,l+Er+_f+Cr+Mu+Om+Pm+r+n+o+e,1,i+Tn+Bn+vf+R+p+r+n+o+e,1,i+Gt+dn+Bt+R+p+r+n+o+e,1,i+Gt+ep+Bt+R+p+r+n+o+e,1,l+Yh+Tr+Hm+Xh+E+p+r+n+o+e,1,i+Es+Dn+x+R+p+r+n+o+e,1,i+Es+Fn+x+pi+p+r+n+o+e,1,i+bh+Xy+dt+m+p+r+n+o+e,1,i+wh+Ku+dt+m+p+r+n+o+e,1,i+hs+Hu+bu+m+p+r+n+o+e,1,i+xh+Jy+bu+m+p+r+n+o+e,1,i+kh+Yu+" +k=1"+m+p+r+n+o+e,1,i+z+Un+se+R+p+r+n+o+e,1,i+z+hu+se+m+p+r+n+o+e,1,i+z+Rl+re+vn+p+r+n+o+e,1,i+L+Vn+li+at+p+r+n+o+e,1,i+L+Qn+Bt+pi+p+r+n+o+e,1,i+sr+Kn+dt+ye+qu+r+n+o+e,1,i+sr+Yn+dt+sa+qu+r+n+o+e,1,l+Vr+Qr+Po+Ko+bt+st+r+n+o+e,1,l+kt+Kr+jo+Ko+m+p+r+n+o+e,1,l+Yr+Xr+mt+Co+V+p+r+n+o+e,1,l+Jr+$r+L+yn+V+Tl+r+n+o+e,1,l+Yt+mr+sr+ku+m+p+r+n+o+e,1,l+Ei+Ci+tt+gi+m+Tt+r+n+o+e,1,l+lo+uo+ul+va+xe+p+r+n+o+e,1,l+jd+Nd+Bd+Pe+xe+p+r+n+o+e,1,i+ut+Ys+x+at+p+r+n+o+e,1,i+te+Xn+dt+sa+p+r+n+o+e,1,l+Xc+Ed+$+lc+V+p+r+n+o+e,1,l+Ti+Or+Al+Vo+R+pf+r+n+o+e,1,l+Oi+Pi+Al+Ya+m+p+r+n+o+e,1,l+Li+Ii+Ri+gu+ev+p+r+n+o+e,1,l+Cd+ji+Ni+ee+lm+p+r+n+o+e,1,l+Fe+Td+Po+ee+$h+p+r+n+o+e,1,l+ho+co+El+Jn+vn+ni+r+n+o+e,1,l+rf+fo+tl+Eu+vn+ni+r+n+o+e,1,l+po+mo+cd+nd+vn+ni+r+n+o+e,1,i+xa+Gn+cn+at+p+r+n+o+e,1,i+xa+We+cn+pi+p+r+n+o+e,1,i+Mn+Ug+re+qe+p+r+n+o+e,1,i+Mn+va+re+m+p+r+n+o+e,1,i+pl+Gg+Bt+hk+p+r+n+o+e,1,l+Zh+Lg+Jc+rl+E+p+r+n+o+e,1,l+nu+xu+go+pn+m+p+r+n+o+e,1,i+fn+$n+x+R+nv+r+n+o+e,1,i+fn+tr+x+m+ba+r+n+o+e,1,i+fn+er+x+vn+tc+r+n+o+e,1,i+Lo+nr+dt+at+p+r+n+o+e,1,i+Xt+Os+x+Ne+p+r+n+o+e,1,i+Re+zn+Ma+Od+p+r+n+o+e,1,i+Re+jl+x+m+p+r+n+o+e,1,i+Re+Hn+Nl+ck+p+r+n+o+e,1,i+Xt+Os+x+Ne+p+r+n+o+e,1,i+jo+qn+Ct+qe+p+r+n+o+e,1,i+jo+Zn+Ct+hg+p+r+n+o+e,1,l+Pr+Lr+Jt+np+at+p+r+n+o+e,1,l+ie+Fi+fl+yi+E+p+r+n+o+e,1,l+Ui+Gi+Ee+yi+E+p+r+n+o+e,1,l+Dd+yo+we+ci+E+p+r+n+o+e,1,l+_o+vo+Tn+ci+E+p+r+n+o+e,1,l+Ir+zi+qm+Co+E+p+r+n+o+e,1,l+Hi+qi+Rr+Co+E+p+r+n+o+e,1,l+Gp+wn+ut+lt+On+p+r+n+o+e,1,l+zp+xn+z+lt+bt+p+r+n+o+e,1,i+ti+Vo+sc+ye+p+r+n+o+e,1,l+bo+wo+ht+pn+E+p+r+n+o+e,1,l+Fd+xo+ei+Pt+E+p+r+n+o+e,1,l+Vi+tf+$t+Vc+E+p+r+n+o+e,1,l+Qi+ef+Zm+Au+R+st+r+n+o+e,1,l+Ki+Yi+Dr+yn+E+In+r+n+o+e,1,l+Xi+Ji+kn+Pt+pi+Io+r+n+o+e,1,l+$i+to+Fr+yu+E+tc+r+n+o+e,1,l+Je+$e+Sn+yn+at+Tu+r+n+o+e,1,l+kt+tn+Ue+oe+m+st+r+n+o+e,1,l+zl+en+mt+oe+m+In+r+n+o+e,1,l+Hl+nn+L+oe+m+Io+r+n+o+e,1,i+Lo+ec+Bl+m+p+r+n+o+e,1,l+Id+eo+$+Qo+Be+In+r+n+o+e,1,l+Yt+Ur+tt+Qo+Be+st+r+n+o+e,1,l+ie+Rd+fl+Wn+m+p+r+n+o+e,1,l+no+ro+Gr+lt+m+p+r+n+o+e,1,l+of+jg+wf+ms+E+p+r+n+o+e,1,l+ko+So+Vm+dn+E+p+r+n+o+e,1,l+io+oo+zr+He+E+p+r+n+o+e,1,l+cu+nf+ht+He+E+p+r+n+o+e,1,l+so+ao+Hp+He+E+p+r+n+o+e,1,i+Ke+rr+Ct+R+p+r+n+o+e,1,i+Ke+ir+Ct+V+ni+r+n+o+e,1,i+Ke+Dl+Ct+E+p+r+n+o+e,1,i+Ke+or+Ct+vn+ni+r+n+o+e,1,l+cs+fs+ds+Ho+R+Ka+r+n+o+e,1,i+Re+jn+x+mi+p+r+n+W+e,1,i+Re+Nn+x+mi+p+r+n+W+e,1,i+Re+Ll+re+mi+p+r+n+W+e,1,l+gr+xu+X+Gs+Et+nt+r+n+h+e,1,l+yr+_r+$+Gs+Et+nt+r+n+h+e,1,l+Ut+vr+mf+lt+Et+nt+r+n+h+e,1,l+Vh+zm+br+gf+Et+nt+r+n+h+e,1,l+wr+xr+yf+Cl+Et+nt+r+n+h+e,1,l+kr+Sr+Mr+Il+Et+nt+r+n+h+e,1,l+Mi+Ai+X+ke+Ze+an+r+n+h+e,1,l+Qh+Kh+bn+ke+Ze+an+r+n+h+e,1,l+Ut+Ar+L+ke+Ze+an+r+n+h+e,1,l+Er+_f+Cr+Mu+Ic+Rc+r+n+h+e,1,i+Tn+Bn+vf+rt+p+r+n+h+e,1,i+Gt+dn+Bt+rt+p+r+n+h+e,1,i+Gt+ep+Bt+rt+p+r+n+h+e,1,l+Yh+Tr+Hm+Xh+E+p+r+n+h+e,1,i+Es+Dn+x+rt+p+r+n+h+e,1,i+Es+Fn+x+ln+p+r+n+h+e,1,i+z+Un+se+rt+p+r+n+h+e,1,i+z+hu+se+it+p+r+n+h+e,1,i+z+Rl+re+jc+p+r+n+h+e,3,l+Yt+mr+sr+ku+it+p+r+n+h+e,1,l+Ei+Ci+tt+gi+it+nt+r+n+h+e,1,l+Xc+Ed+$+lc+Nc+p+r+n+h+e,1,l+Ti+Or+Al+Vo+rt+pf+r+n+h+e,1,l+Oi+Pi+Al+Ya+it+p+r+n+h+e,1,l+Li+Ii+Ri+gu+Bc+p+r+n+W+e,1,l+Cd+ji+Ni+ee+Dc+p+r+n+W+e,1,l+Fe+Td+Po+ee+Vd+p+r+n+W+e,1,i+xa+Gn+cn+ne+p+r+n+h+e,1,i+xa+We+cn+ln+p+r+n+h+e,1,l+Zh+Lg+Jc+rl+cr+p+r+n+W+e,1,i+Re+zn+Ma+Od+p+r+n+h+e,1,i+Re+jl+x+it+p+r+n+h+e,1,i+Re+Hn+Nl+Fc+p+r+n+h+e,1,i+Xt+Os+x+Ne+p+r+n+h+e,1,i+jo+qn+Ct+Uc+p+r+n+h+e,1,i+jo+Zn+Ct+Gc+p+r+n+h+e,1,l+Pr+Lr+Jt+np+ne+p+r+n+h+e,1,l+ie+Fi+fl+yi+cr+p+r+n+W+e,1,l+Ui+Gi+Ee+yi+cr+p+r+n+W+e,1,l+Ir+zi+qm+Co+E+p+r+n+h+e,1,l+Hi+qi+Rr+Co+E+p+r+n+h+e,1,l+Gp+wn+ut+lt+Wu+p+r+n+W+e,1,l+zp+xn+z+lt+Vu+p+r+n+W+e,1,l+Vi+tf+$t+Vc+E+p+r+n+h+e,1,l+Qi+ef+Zm+Au+rt+un+r+n+h+e,1,l+Ki+Yi+Dr+yn+E+Ls+r+n+h+e,1,l+Xi+Ji+kn+Pt+ln+Io+r+n+h+e,1,l+$i+to+Fr+yu+E+sd+r+n+h+e,1,l+Je+$e+Sn+yn+ne+ad+r+n+h+e,1,l+kt+tn+Ue+oe+_s+bm+r+n+W+e,1,l+zl+en+mt+oe+_s+Wg+r+n+W+e,1,l+Hl+nn+L+oe+_s+Vg+r+n+W+e,1,l+Id+eo+$+Qo+Is+Ls+r+n+h+e,1,l+Yt+Ur+tt+Qo+Is+un+r+n+h+e,1,l+ie+Rd+fl+Wn+it+p+r+n+h+e,1,l+no+ro+Gr+lt+it+p+r+n+h+e,1,l+io+oo+zr+He+E+p+r+n+h+e,1,l+cu+nf+ht+He+E+p+r+n+h+e,1,l+so+ao+Hp+He+E+p+r+n+h+e,1,i+f+" +lon_0=13"+pt+m+p+vt+he+g_+o+e,1,i+" +lat_0=24.45"+aw+bu+R+ka+_+Iu+o+e,1,u+Qf+G+M+_a+o+e,2,i+Xu+" +lon_0=41.53333333333333 +k=1 +x_0=1300000"+p+d+s+o+e,1,i+Xu+" +lon_0=44.53333333333333 +k=1"+oM+p+d+s+o+e,1,i+Xu+" +lon_0=47.53333333333333 +k=1"+sM+p+d+s+o+e,1,i+Xu+" +lon_0=50.53333333333333 +k=1"+aM+p+d+s+o+e,1,i+cp+" +lon_0=50.76666666666667 +k=1"+oM+p+d+s+o+e,1,i+cp+" +lon_0=53.76666666666667 +k=1"+sM+p+d+s+o+e,1,i+cp+" +lon_0=56.76666666666667 +k=1"+aM+p+d+s+o+e,1,u+uu+_+Sy+o+e,1,u+uu+_+y_+o+e,2,i+f+K_+x+At+p+r+n+o+e,1,i+f+Dg+x+At+p+r+n+o+e,1,i+f+Fg+x+At+p+r+n+o+e,1,i+f+Y_+x+At+p+r+n+o+e,1,i+f+Ya+x+At+p+r+n+o+e,1,i+f+X_+x+At+p+r+n+o+e,1,i+f+J_+x+At+p+r+n+o+e,1,i+f+ms+x+At+p+r+n+o+e,1,us+El+nM+Fy+On+lM+r+n+o+e,1,us+" +lat_0=47.25"+sg+Fy+V+hn+r+n+o+e,1,u+bd+r+n+o+e,1,u+wd+r+n+o+e,1,u+xd+r+n+o+e,1,u+wl+r+n+o+e,1,u+Ga+r+n+o+e,1,u+wa+r+n+o+e,1,u+Us+r+n+o+e,1,u+za+r+n+o+e,2,dr+" +lat_1=55"+Qm+tS+xf+Z+p+S+h+e,1,i+sr+Kn+dt+Hc+Xo+r+n+h+e,1,i+sr+Yn+dt+sa+Xo+r+n+h+e,1,i+sr+Kn+dt+Hc+Xo+r+n+h+e,1,i+sr+Yn+dt+sa+Xo+r+n+h+e,1,u+Us+_+__+o+e,1,u+Us+_+My+o+e,1,u+Ml+_+Bf+o+e,1,u+Ml+r+n+o+e,1,u+Us+_+L_+o+e,2,u+lf+G+r+n+o+e,1,u+ly+G+_+I_+o+e,1,u+Cg+G+_+xc+o+e,1,u+Tg+G+_+vv+o+e,2,u+lu+G+_+Ay+o+e,1,u+Pc+G+_+Nm+o+e,6,u+za+j+H_+o+e,1,u+Oy+G+_+Ey+o+e,3,l+nu+Sa+Yo+lt+V+p+r+n+o+e,1,l+nu+Sa+Yo+lt+ac+p+r+n+W+e,1,l+nu+Sa+Yo+lt+V+p+r+n+o+e,1,l+nu+Sa+Yo+lt+ac+p+r+n+W+e,1,u+Pc+G+_+pu+o+e,1,u+Pc+G+_+v_+o+e,1,u+Pc+G+_+ch+o+e,1,u+Pc+G+_+Qs+o+e,1,u+lu+G+_+Cy+o+e,1,ru+" +lon_0=110"+wS+um+cg+M+_a+o+e,1,ru+" +lon_0=110"+wS+um+cg+M+Pn+o+e,1,ru+" +lon_0=110"+wS+um+cg+M+fa+o+e,1,i+f+Nu+pt+bt+p+_+sn+o+e,1,i+f+Ss+pt+" +x_0=2520000"+p+_+sn+o+e,1,dr+eS+" +lat_2=58.5"+tl+" +lon_0=-126"+xe+p+r+n+o+e,1,u+Bu+r+n+o+e,1,i+f+Wa+" +k=1"+Ne+p+r+n+o+e,1,i+f+" +lon_0=13.5 +k=1"+Ne+p+r+n+o+e,1,i+f+Ss+" +k=1"+Ne+p+r+n+o+e,1,i+f+fk+" +k=1"+Ne+p+r+n+o+e,1,i+f+Gm+" +k=1"+Ne+p+r+n+o+e,1,i+f+" +lon_0=14.25 +k=1"+Ne+p+r+n+o+e,1,i+f+" +lon_0=15.75 +k=1"+Ne+p+r+n+o+e,1,i+f+" +lon_0=17.25 +k=1"+Ne+p+r+n+o+e,1,i+f+" +lon_0=18.75 +k=1"+Ne+p+r+n+o+e,1,i+f+" +lon_0=20.25 +k=1"+Ne+p+r+n+o+e,1,i+f+" +lon_0=21.75 +k=1"+Ne+p+r+n+o+e,1,i+f+" +lon_0=23.25 +k=1"+Ne+p+r+n+o+e,1,i+f+lw+" +k=1"+bt+p+M+ve+o+e,1,i+f+uw+" +k=1"+bt+p+M+ve+o+e,1,i+f+hw+" +k=1"+bt+p+M+ve+o+e,1,i+f+cw+" +k=1"+bt+p+M+ve+o+e,1,i+f+fw+" +k=1"+bt+p+M+ve+o+e,1,i+f+dw+" +k=1"+bt+p+M+ve+o+e,1,i+f+lw+" +k=1"+bt+p+M+o+e,1,i+f+uw+" +k=1"+bt+p+M+o+e,1,i+f+hw+" +k=1"+bt+p+M+o+e,1,i+f+cw+" +k=1"+bt+p+M+o+e,1,i+f+fw+" +k=1"+bt+p+M+o+e,1,i+f+dw+" +k=1"+bt+p+M+o+e,1,fe+F+" +lat_ts=-71"+ta+" +k=1"+Z+p+v+o+e,1,fe+F+" +lat_ts=-71 +lon_0=70 +k=1"+lm+ba+v+o+e,1,l+" +lat_1=-68.5 +lat_2=-74.5 +lat_0=-50 +lon_0=70"+lm+ba+v+o+e,1,l+nS+Qm+Wp+Mc+$h+zg+r+n+o+e,1,ya+Wp+Mc+Hg+qg+r+n+o+e,1,u+uf+G+N+Ju+o+e,1,u+Du+G+N+Ju+o+e,3,u+uu+r+n+o+e,1,u+ju+r+n+o+e,1,u+gp+r+n+o+e,1,u+Em+r+n+o+e,1,u+Yl+r+n+o+e,1,u+Bu+r+n+o+e,1,u+Vf+r+n+o+e,1,u+mh+r+n+o+e,1,u+uf+r+n+o+e,1,u+Du+r+n+o+e,5,u+_p+_+fu+o+e,1,u+Py+_+fu+o+e,1,u+uu+_+fu+o+e,1,l+" +lat_1=64.25 +lat_2=65.75 +lat_0=65 +lon_0=-19"+m+Tt+r+n+o+e,1,i+f+" +lon_0=-8.5 +k=1"+wu+" +y_0=-7800000"+_+Ru+o+e,1,i+f+Va+pt+m+" +y_0=-6000000"+r+n+o+e,1,u+Pc+G+_+Jm+o+e,1,u+uu+_+Rp+o+e,1,u+_p+_+ym+o+e,1,u+_p+_+Jp+o+e,1,u+Yl+N+n+o+e,1,u+Bu+N+n+o+e,1,i+f+" +lon_0=37"+xv+m+yS+_+U+o+e,1,u+mh+r+n+o+e,1,Ln+" +lat_0=52.41864827777778 +lon_0=13.62720366666667"+op+" +y_0=10000"+M+et+o+e,1,i+f+He+pt+m+" +y_0=-4500000"+S+o+e,1,i+f+He+pt+dk+$y+r+n+o+e,1,i+f+He+pt+dk+$y+r+n+o+e,1,i+ht+$g+Gl+pi+p+r+n+o+e,2,i+te+ty+Gl+at+p+r+n+o+e,1,i+ht+$g+Gl+pi+p+r+n+o+e,2,i+te+ty+Gl+at+p+r+n+o+e,1,gn+Sh+" +lonc=-86"+Lm+pt+Im+Yp+Fu+Rm+r+n+o+e,1,gn+Sh+" +lonc=-86"+Lm+pt+Im+Yp+Fu+Rm+r+n+o+e,1,l+pw+mw+gw+pn+" +x_0=914400 +y_0=914400"+S+W+e,1,l+pw+mw+gw+pn+xe+st+r+n+o+e,1,l+Ud+Ng+Xd+pn+bt+Tu+r+n+o+e,1,dr+Ud+Ng+Xd+pn+bt+ba+r+n+o+e,1,l+Ud+Ng+Xd+pn+bt+Tu+r+n+o+e,1,dr+Ud+Ng+Xd+pn+bt+ba+r+n+o+e,1,dr+" +lat_1=24"+pk+" +lat_0=24"+Xf+V+p+r+n+o+e,1,dr+" +lat_1=24"+pk+" +lat_0=24"+Xf+V+p+r+n+o+e,1,l+Mo+Ao+tt+gi+bt+st+r+n+o+e,1,l+Mo+Ao+tt+gi+bt+un+r+n+h+e,1,l+Mo+Ao+tt+gi+bt+st+r+n+o+e,1,l+Mo+Ao+tt+gi+bt+un+r+n+h+e,1,u+hf+M+I+o+e,1,u+Kf+M+I+o+e,1,u+vp+M+I+o+e,1,u+kd+M+I+o+e,1,u+Dp+M+I+o+e,1,u+hf+r+n+o+e,1,u+Kf+r+n+o+e,1,u+vp+r+n+o+e,1,u+kd+r+n+o+e,1,u+Dp+r+n+o+e,1,l+" +lat_1=-14.26666666666667 +lat_0=-14.26666666666667"+zy+" +k_0=1"+P+" +y_0=95169.31165862332"+j+b_+h+e,4,i+f+Ta+pt+m+p+Ve+Kt+Eg+o+e,1,l+" +lat_1=-28"+MS+" +lat_0=-32"+Oo+xe+In+r+n+o+e,1,i+Dy+" +lon_0=-2.416666666666667 +k=0.999997 +x_0=47000"+vy+r+n+o+e,1,i+" +lat_0=49.225 +lon_0=-2.135 +k=0.9999999000000001"+op+" +y_0=70000"+r+n+o+e,1,l+" +lat_1=-36 +lat_2=-38 +lat_0=-37 +lon_0=145"+On+gs+Y+q+o+e,1,l+" +lat_1=-36 +lat_2=-38 +lat_0=-37 +lon_0=145"+On+ql+r+n+o+e,1,l+" +lat_1=-18"+MS+f+" +lon_0=134"+Z+p+r+n+o+e,1,i+" +lat_0=-28"+td+bu+wu+ni+r+n+o+e,1,i+ml+" +lon_0=-80.07750791666666 +k=1"+xe+st+r+n+o+e,1,i+ml+" +lon_0=-77.07750791666666 +k=1"+xe+st+r+n+o+e,1,i+ml+" +lon_0=-74.07750791666666 +k=1"+xe+st+r+n+o+e,1,i+ml+" +lon_0=-71.07750791666666 +k=1"+xe+st+r+n+o+e,1,i+ml+" +lon_0=-68.07750791666666 +k=1"+xe+st+r+n+o+e,1,i+f+mk+" +k=0.999"+xe+st+_+tg+o+e,1,us+" +lat_0=50.625 +lon_0=21.08333333333333"+xv+" +x_0=4637000 +y_0=5467000"+d+C+o+e,1,i+f+To+cn+m+p+j+be+o+e,1,i+f+AS+cn+m+p+j+be+o+e,1,i+f+ES+cn+m+p+j+be+o+e,1,i+f+Ro+cn+m+p+j+be+o+e,1,i+f+py+cn+m+p+j+be+o+e,1,i+f+Og+" +k=1"+m+p+r+n+o+e,1,i+f+Sv+" +k=1"+m+p+r+n+o+e,1,i+f+As+" +k=1"+m+p+r+n+o+e,1,i+f+rS+" +k=1"+m+p+r+n+o+e,1,i+f+jy+" +k=1"+m+p+r+n+o+e,1,i+f+Va+" +k=1"+m+p+r+n+o+e,1,i+f+Pg+" +k=1"+m+p+r+n+o+e,1,i+f+Mv+" +k=1"+m+p+r+n+o+e,1,i+f+ea+" +k=1"+m+p+r+n+o+e,1,i+f+Bg+" +k=1"+m+p+r+n+o+e,1,i+f+" +lon_0=29 +k=1"+m+p+r+n+o+e,1,i+f+cl+" +k=1"+m+p+r+n+o+e,1,i+f+Um+" +k=1"+m+p+r+n+o+e,2,Ln+" +lat_0=-18 +lon_0=178 +x_0=109435.392 +y_0=141622.272"+Dv+Wk+dd+" +to_meter=0.201168"+e,1,u+Bp+G+_+Ul+o+e,1,u+Oy+G+_+Ul+o+e,6,u+cf+Ve+Kt+Jl+o+e,1,u+ff+Ve+Kt+Jl+o+e,3,i+f+" +lon_0=18.05779 +k=0.99999425 +x_0=100178.1808 +y_0=-6500614.7836"+r+n+o+e,1,dr+eS+" +lat_2=58.5"+tl+" +lon_0=-126"+xe+p+r+n+o+e,1,u+Tg+r+n+o+e,1,u+U_+r+n+o+e,1,u+G_+r+n+o+e,1,u+Cm+r+n+o+e,1,u+Sd+r+n+o+e,1,u+Zf+r+n+o+e,1,u+Wf+r+n+o+e,1,l+gk+" +lat_2=53.5"+f+by+" +x_0=930000 +y_0=6430000"+r+n+o+e,1,l+gk+" +lat_2=53.5"+f+by+" +x_0=930000 +y_0=6430000"+r+n+o+e,1,l+" +lat_1=-20.66666666666667 +lat_2=-22.33333333333333 +lat_0=-21.5"+CS+V+ka+r+n+o+e,1,u+Pc+G+N+Mm+o+e,1,l+" +lat_1=-22.24469175 +lat_2=-22.29469175 +lat_0=-22.26969175 +lon_0=166.44242575 +x_0=0.66 +y_0=1.02"+_+Qs+o+e,1,l+" +lat_1=-22.24472222222222 +lat_2=-22.29472222222222 +lat_0=-22.26972222222222 +lon_0=166.4425 +x_0=8.313000000000001 +y_0=-2.354"+_+Qs+o+e,1,gn+ig+uM+kM+om+op+p+Fu+ps+Vk+wg+" +to_meter=20.116756"+e,1,gn+ig+uM+kM+om+" +x_0=804670.24"+p+Fu+ps+Vk+wg+o+e,1,u+Ly+G+r+n+o+e,1,u+Pc+G+r+n+o+e,1,u+_d+G+r+n+o+e,1,u+_d+G+_+pu+o+e,2,dr+" +lat_1=42.122774 +lat_2=49.01518 +lat_0=45.568977 +lon_0=-84.455955"+xe+st+r+n+o+e,1,dr+" +lat_1=42.122774 +lat_2=49.01518 +lat_0=45.568977 +lon_0=-83.248627"+xe+st+r+n+o+e,1,i+f+xS+pt+m+p+Ve+Kt+Jl+o+e,1,i+f+bv+" +k=0.9965000000000001"+xe+p+_+K+o+e,1,u+Ga+r+n+o+e,1,u+wa+r+n+o+e,1,u+Us+r+n+o+e,1,u+za+r+n+o+e,1,u+Ml+r+n+o+e,1,u+Lc+r+n+o+e,1,u+Md+r+n+o+e,1,u+vd+r+n+o+e,1,u+_p+r+n+o+e,1,u+Py+r+n+o+e,1,u+uu+r+n+o+e,1,u+ju+r+n+o+e,1,i+f+Nu+cn+R+p+_+K+o+e,1,i+f+" +lon_0=11"+cn+R+p+_+K+o+e,1,i+f+" +lon_0=13"+cn+R+p+_+K+o+e,1,i+f+Ss+cn+R+p+_+K+o+e,1,i+f+bv+cn+R+p+_+K+o+e,1,i+f+Og+cn+R+p+_+K+o+e,1,i+f+As+cn+R+p+_+K+o+e,1,i+f+jy+cn+R+p+_+K+o+e,1,i+f+Pg+cn+R+p+_+K+o+e,1,u+Yl+_+K+o+e,1,l+fg+dc+eu+Xp+bt+hM+T+Am+o+e,1,u+Bu+_+K+o+e,1,u+Vf+_+K+o+e,1,u+mh+_+K+o+e,1,l+fp+dp+F+nm+Z+p+v+o+e,1,l+fp+dp+F+rd+Z+p+v+o+e,1,l+fp+dp+F+" +lon_0=-42"+Z+p+v+o+e,1,l+de+pe+F+Uy+Z+p+v+o+e,1,l+de+pe+F+nm+Z+p+v+o+e,1,l+de+pe+F+rd+Z+p+v+o+e,1,l+de+pe+F+Up+Z+p+v+o+e,1,l+de+pe+F+By+Z+p+v+o+e,1,l+de+pe+F+kv+Z+p+v+o+e,1,l+de+pe+F+Sc+Z+p+v+o+e,1,l+de+pe+F+Ta+Z+p+v+o+e,1,l+de+pe+F+_u+Z+p+v+o+e,1,l+de+pe+F+kl+Z+p+v+o+e,1,l+de+pe+F+vu+Z+p+v+o+e,1,l+de+pe+F+yy+Z+p+v+o+e,1,l+de+pe+F+ip+Z+p+v+o+e,1,l+de+pe+F+ag+Z+p+v+o+e,1,l+ct+ft+F+" +lon_0=-102"+Z+p+v+o+e,1,l+ct+ft+F+He+Z+p+v+o+e,1,l+ct+ft+F+" +lon_0=-78"+Z+p+v+o+e,1,l+ct+ft+F+nm+Z+p+v+o+e,1,l+ct+ft+F+" +lon_0=-18"+Z+p+v+o+e,1,l+ct+ft+F+" +lon_0=-6"+Z+p+v+o+e,1,l+ct+ft+F+bS+Z+p+v+o+e,1,l+ct+ft+F+Gm+Z+p+v+o+e,1,l+ct+ft+F+cl+Z+p+v+o+e,1,l+ct+ft+F+Up+Z+p+v+o+e,1,l+ct+ft+F+By+Z+p+v+o+e,1,l+ct+ft+F+kv+Z+p+v+o+e,1,l+ct+ft+F+Sc+Z+p+v+o+e,1,l+ct+ft+F+Ta+Z+p+v+o+e,1,l+ct+ft+F+_u+Z+p+v+o+e,1,l+ct+ft+F+kl+Z+p+v+o+e,1,l+ct+ft+F+vu+Z+p+v+o+e,1,l+ct+ft+F+yy+Z+p+v+o+e,1,l+ct+ft+F+ip+Z+p+v+o+e,1,l+ct+ft+F+ag+Z+p+v+o+e,1,l+ct+ft+F+Pv+Z+p+v+o+e,1,l+Lt+St+F+yk+Z+p+v+o+e,1,l+Lt+St+F+_k+Z+p+v+o+e,1,l+Lt+St+F+pc+Z+p+v+o+e,1,l+Lt+St+F+yu+Z+p+v+o+e,1,l+Lt+St+F+dn+Z+p+v+o+e,1,l+Lt+St+F+sg+Z+p+v+o+e,1,l+Lt+St+F+" +lon_0=-27"+Z+p+v+o+e,1,l+Lt+St+F+" +lon_0=-9"+Z+p+v+o+e,1,l+Lt+St+F+Nu+Z+p+v+o+e,1,l+Lt+St+F+ea+Z+p+v+o+e,1,l+Lt+St+F+eu+Z+p+v+o+e,1,l+Lt+St+F+Wm+Z+p+v+o+e,1,l+Lt+St+F+ra+Z+p+v+o+e,1,l+Lt+St+F+oa+Z+p+v+o+e,1,l+Lt+St+F+To+Z+p+v+o+e,1,l+Lt+St+F+Oo+Z+p+v+o+e,1,l+Lt+St+F+td+Z+p+v+o+e,1,l+Lt+St+F+hc+Z+p+v+o+e,1,l+It+Rt+F+Gy+Z+p+v+o+e,1,l+It+Rt+F+" +lon_0=-144"+Z+p+v+o+e,1,l+It+Rt+F+kf+Z+p+v+o+e,1,l+It+Rt+F+$d+Z+p+v+o+e,1,l+It+Rt+F+Lv+Z+p+v+o+e,1,l+It+Rt+F+" +lon_0=-48"+Z+p+v+o+e,1,l+It+Rt+F+" +lon_0=-24"+Z+p+v+o+e,1,l+It+Rt+F+ta+Z+p+v+o+e,1,l+It+Rt+F+Va+Z+p+v+o+e,1,l+It+Rt+F+Ny+Z+p+v+o+e,1,l+It+Rt+F+$k+Z+p+v+o+e,1,l+It+Rt+F+df+Z+p+v+o+e,1,l+It+Rt+F+Uu+Z+p+v+o+e,1,l+It+Rt+F+Tv+Z+p+v+o+e,1,l+It+Rt+F+Ov+Z+p+v+o+e,1,fe+F+wt+Hy+" +k=1"+Z+p+v+o+e,1,fe+F+wt+_k+" +k=1"+Z+p+v+o+e,1,fe+F+wt+" +lon_0=-105 +k=1"+Z+p+v+o+e,1,fe+F+wt+Iv+" +k=1"+Z+p+v+o+e,1,fe+F+wt+" +lon_0=-45 +k=1"+Z+p+v+o+e,1,fe+F+wt+" +lon_0=-15 +k=1"+Z+p+v+o+e,1,fe+F+wt+Ss+" +k=1"+Z+p+v+o+e,1,fe+F+wt+eu+" +k=1"+Z+p+v+o+e,1,fe+F+wt+na+" +k=1"+Z+p+v+o+e,1,fe+F+wt+oi+" +k=1"+Z+p+v+o+e,1,fe+F+wt+Oo+" +k=1"+Z+p+v+o+e,1,fe+F+wt+ed+" +k=1"+Z+p+v+o+e,1,fe+F+wt+Gd+" +k=1"+Z+p+v+o+e,1,fe+F+wt+He+" +k=1"+Z+p+v+o+e,1,fe+F+wt+" +lon_0=-30 +k=1"+Z+p+v+o+e,1,fe+F+wt+cl+" +k=1"+Z+p+v+o+e,1,fe+F+wt+Ta+" +k=1"+Z+p+v+o+e,1,fe+F+wt+ip+" +k=1"+Z+p+v+o+e,1,fe+F+wt+ta+" +k=1"+Z+p+v+o+e,1,l+It+Rt+" +lat_0=-78"+ag+Z+p+v+o+e,2,u+Cg+G+r+je+o+e,1,u+ly+G+r+je+o+e,1,u+Tg+G+r+je+o+e,1,u+U_+G+r+je+o+e,1,l+yw+" +lat_2=58"+_w+Va+m+" +y_0=6375000"+r+Ec+o+e,1,l+yw+" +lat_2=58"+_w+Va+m+" +y_0=6375000"+r+n+o+e,1,u+Tg+G+_+wc+o+e,1,u+Tg+G+_+uh+o+e,1,u+ly+G+_+dh+o+e,1,u+ly+G+_+ph+o+e,1,u+Cg+G+_+Bm+o+e,1,u+Kl+N+w_+o+e,1,l+" +lat_1=-30.75 +lat_2=-35.75 +lat_0=-33.25"+rp+" +x_0=9300000"+gs+r+n+o+e,1,dr+iS+qy+f+kf+Z+Km+S+o+e,1,dr+iS+qy+f+kf+Z+Km+r+n+o+e,1,dr+iS+qy+f+kf+Z+Km+r+n+o+e,1,u+za+_+Bf+o+e,1,u+za+r+n+o+e,3,i+f+rS+x+m+jt+T+o+e,1,i+f+Va+x+m+jt+T+o+e,1,i+f+Wa+x+m+jt+T+o+e,1,i+f+" +lon_0=14"+x+m+jt+T+o+e,1,i+f+" +lon_0=16"+x+m+jt+T+o+e,1,i+f+Gm+x+m+jt+T+o+e,1,i+f+Sv+x+m+jt+T+o+e,1,i+f+rS+x+m+jt+T+o+e,1,i+f+Va+x+m+jt+T+o+e,1,i+f+Mv+x+m+jt+T+o+e,1,i+f+Bg+x+m+jt+T+o+e,1,i+f+cl+x+m+jt+T+o+e,1,us+" +lat_0=52.16666666666666 +lon_0=19.16666666666667 +k=0.999714"+m+Tt+d+C+o+e,1,i+f+Ss+" +k=1"+Si+p+d+C+o+e,1,i+f+Gm+" +k=1"+Cu+p+d+C+o+e,1,i+f+As+" +k=1"+Xa+p+d+C+o+e,1,i+f+Va+" +k=1"+Kc+p+d+C+o+e,1,i+f+Ss+" +k=1"+Be+p+d+C+o+e,1,i+f+As+" +k=1"+ur+p+d+C+o+e,1,i+f+ea+" +k=1"+Si+p+d+C+o+e,1,u+Yg+G+_+x_+o+e,1,l+" +lat_1=-20.19506944444445 +lat_0=-20.19506944444445 +lon_0=57.52182777777778 +k_0=1"+xe+st+T+eg+o+e,1,dr+" +lat_1=55"+Qm+tS+xf+Z+p+r+n+o+e,1,i+f+Wa+x+m+jt+T+ns+o+e,1,i+f+" +lon_0=14"+x+m+jt+T+ns+o+e,1,i+f+" +lon_0=16"+x+m+jt+T+ns+o+e,1,u+Bu+G+T+ns+o+e,1,u+uu+r+n+o+e,1,u+ju+r+n+o+e,1,u+gp+r+n+o+e,1,i+f+Va+xv+m+p+r+n+o+e,1,l+Zh+Qa+" +lat_0=63.390675"+Uv+" +x_0=6200000"+Io+r+n+o+e,1,l+Zh+Qa+" +lat_0=63.390675"+Uv+" +x_0=6200000"+Io+r+n+o+e,2,i+" +lat_0=0.1 +lon_0=21.95 +k=1"+qe+p+d+s+o+e,1,i+" +lat_0=0.1 +lon_0=24.95 +k=1 +x_0=1250000"+p+d+s+o+e,1,i+" +lat_0=0.1 +lon_0=27.95 +k=1 +x_0=2250000"+p+d+s+o+e,1,u+Yl+G+_+o+e,1,u+Yl+G+_+o+e,1,i+Es+Um+" +k=1 +x_0=615000 +y_0=810000"+Cs+ng+o+e,3,l+Bi+Di+Jh+Jf+ey+p+r+n+o+e,2,l+Wi+Pd+Br+dn+Ld+p+r+n+o+e,1,l+Wi+Pd+Br+dn+Ld+p+r+n+W+e,1,l+$c+Zi+Jt+_i+E+p+r+n+o+e,1,l+$c+Zi+Jt+_i+E+p+r+n+h+e,1,l+jr+Nr+X+_i+E+p+r+n+o+e,1,l+jr+Nr+X+_i+E+p+r+n+h+e,2,u+uu+T+o+e,1,u+ju+T+o+e,1,u+gp+T+o+e,1,u+_d+S+o+e,1,u+Bp+S+o+e,1,u+_d+r+n+o+e,1,u+Bp+r+n+o+e,1,u+ju+_+o+e,1,gn+ig+uM+" +alpha=323.0257964666666"+om+" +x_0=804671"+p+Fu+ps+r+o+e,1,gn+ig+oS+SM+om+Z+p+Fu+gl+r+o+e,1,Ln+" +lat_0=2.121679744444445 +lon_0=103.4279362361111 +x_0=-14810.562 +y_0=8758.32"+r+o+e,1,Ln+" +lat_0=2.682347636111111 +lon_0=101.9749050416667 +x_0=3673.785 +y_0=-4240.573"+r+o+e,1,Ln+" +lat_0=3.769388088888889 +lon_0=102.3682989833333 +x_0=-7368.228 +y_0=6485.858"+r+o+e,1,Ln+" +lat_0=3.68464905 +lon_0=101.3891079138889 +x_0=-34836.161 +y_0=56464.049"+r+o+e,1,Ln+" +lat_0=4.9762852 +lon_0=103.070275625 +x_0=19594.245 +y_0=3371.895"+r+o+e,1,Ln+" +lat_0=5.421517541666667 +lon_0=100.3443769638889 +x_0=-23.414 +y_0=62.283"+r+o+e,1,Ln+" +lat_0=5.964672713888889 +lon_0=100.6363711111111"+Z+p+r+o+e,1,Ln+" +lat_0=4.859063022222222 +lon_0=100.8154105861111 +x_0=-1.769 +y_0=133454.779"+r+o+e,1,Ln+" +lat_0=5.972543658333334 +lon_0=102.2952416694444 +x_0=13227.851 +y_0=8739.894"+r+o+e,1,i+f+Gm+" +k=1"+m+p+_+qt+o+e,1,i+f+Za+" +k=1"+Si+p+_+qt+o+e,1,ru+qp+" +lat_ts=42"+Z+p+d+s+o+e,1,i+f+_y+" +k=1 +x_0=60500000"+p+d+s+o+e,1,i+f+_y+" +k=1 +x_0=60500000"+p+d+a+o+e,1,u+Du+T+fi+o+e,1,u+lu+T+fi+o+e,1,u+Kl+T+fi+o+e,1,l+fg+dc+eu+Xp+bt+hM+T+o+e,1,ru+ta+" +k=1"+Z+p+v+o+e,1,i+f+Nu+" +k=1"+Be+p+M+o+e,1,i+f+Wa+" +k=1"+ur+p+M+o+e,1,i+f+Wa+" +k=1"+ur+p+M+o+e,1,i+f+Ss+" +k=1"+Si+p+M+o+e,1,i+f+Zy+" +k=0.9992"+m+p+r+n+o+e,1,i+f+Zy+" +k=0.9992"+Z+p+r+n+o+e,1,i+f+Zy+" +k=0.9992"+m+p+r+n+o+e,1,i+f+Zy+" +k=0.9992"+Z+p+r+n+o+e,1,l+Bi+Di+Jh+Jf+A+p+r+n+h+e,1,u+cf+N+Bo+o+e,1,u+ff+N+Bo+o+e,1,Ln+ow+sw+" +x_0=40243.57775604237 +y_0=19069.93351512578"+xi+ki+zc+e,1,ya+Oa+ta+Z+p+TS+OS+o+e,1,ya+F+ta+Z+p+TS+OS+o+e,1,"+proj=cea"+ta+" +lat_ts=30"+Z+p+TS+OS+o+e,1,fe+Oa+" +lat_ts=70 +lon_0=-45 +k=1"+Z+p+PS+ny+o+e,1,fe+F+" +lat_ts=-70"+ta+" +k=1"+Z+p+PS+ny+o+e,1,fe+Oa+" +lat_ts=70 +lon_0=-45 +k=1"+Z+p+v+o+e,1,i+" +lat_0=1.366666666666667 +lon_0=103.8333333333333 +k=1 +x_0=28001.642 +y_0=38744.572"+N+o+e,1,l+" +lat_1=18 +lat_2=24 +lat_0=21"+kl+m+Tt+b+y+o+e,1,l+Zh+ud+" +lat_0=47.5"+yl+V+Tl+r+n+o+e,1,l+Vr+Qr+Po+Ko+bt+Jo+r+n+h+e,1,l+kt+Kr+jo+Ko+ot+p+r+n+h+e,1,l+Yr+Xr+mt+Co+Zt+p+r+n+h+e,1,l+Jr+$r+L+yn+Zt+Rs+r+n+h+e,1,i+fn+$n+x+js+qc+r+n+h+e,1,i+fn+tr+x+ot+ba+r+n+h+e,1,i+fn+er+x+Dt+Rf+r+n+h+e,1,i+Xt+Os+x+Ne+p+r+n+h+e,1,l+Vr+Qr+Po+Ko+bt+Jo+r+n+h+e,1,l+kt+Kr+jo+Ko+ot+p+r+n+h+e,1,l+Yr+Xr+mt+Co+Zt+p+r+n+h+e,1,l+Jr+$r+L+yn+Zt+Rs+r+n+h+e,1,i+fn+$n+x+js+qc+r+n+h+e,1,i+fn+tr+x+ot+ba+r+n+h+e,1,i+fn+er+x+Dt+Rf+r+n+h+e,1,i+Xt+Os+x+Ne+p+r+n+h+e,1,l+Hr+qr+$t+qa+Zt+p+r+n+h+e,1,l+Zr+bf+Wr+qa+Zt+Rs+r+n+h+e,1,i+L+Vn+li+ne+p+r+n+h+e,1,i+L+Qn+Bt+Zc+p+r+n+h+e,1,i+Lo+nr+dt+ne+p+r+n+h+e,1,i+ti+Vo+sc+iu+p+r+n+h+e,1,u+Kl+T+ws+o+e,1,u+lf+T+ws+o+e,1,l+Hr+qr+$t+qa+Zt+p+r+n+h+e,1,l+Zr+bf+Wr+qa+Zt+Rs+r+n+h+e,1,i+L+Vn+li+ne+p+r+n+h+e,1,i+L+Qn+Bt+Zc+p+r+n+h+e,1,i+Lo+nr+dt+ne+p+r+n+h+e,1,i+ti+Vo+sc+iu+p+r+n+h+e,1,l+Mh+Ah+" +lat_0=50.797815"+vw+" +x_0=150328 +y_0=166262"+r+n+o+e,1,l+" +lat_1=18"+Xd+lc+" +k_0=1"+vk+" +y_0=650000"+N+n+o+e,1,u+wl+N+n+o+e,1,u+Ga+N+n+o+e,1,l+lo+uo+ul+va+vi+p+r+n+h+e,1,l+jd+Nd+Bd+Pe+vi+p+r+n+h+e,1,l+Je+$e+" +lat_0=25.5"+Pe+vi+p+r+n+h+e,2,l+Fd+xo+ei+Pt+E+p+r+n+h+e,1,l+lo+uo+ul+va+vi+p+r+n+h+e,1,l+jd+Nd+Bd+Pe+vi+p+r+n+h+e,1,l+bo+wo+ht+pn+E+p+r+n+h+e,1,l+Fd+xo+ei+Pt+E+p+r+n+h+e,1,i+" +lat_0=-17 +lon_0=178.75 +k=0.99985"+Ae+tc+b+g+o+e,1,u+uu+vt+he+pd+o+e,1,u+ju+vt+he+pd+o+e,1,i+bk+ry+Gl+m+p+r+n+o+e,1,i+bk+ry+Gl+m+p+r+n+o+e,1,i+ul+sl+tm+R+p+r+n+o+e,1,i+Es+Wd+re+E+p+r+n+o+e,1,dr+" +lat_1=55"+Qm+tS+xf+Z+p+r+n+o+e,1,gn+" +lat_0=57"+Eh+Ch+x+nc+si+Fu+ps+r+n+o+e,1,i+No+wk+x+m+p+r+n+o+e,1,i+No+xk+x+m+p+r+n+o+e,1,i+No+Gd+x+m+p+r+n+o+e,1,i+No+xf+x+m+p+r+n+o+e,1,i+No+Hu+x+m+p+r+n+o+e,1,i+No+kk+x+m+p+r+n+o+e,1,i+No+Sk+x+m+p+r+n+o+e,1,i+No+zy+x+m+p+r+n+o+e,1,l+Th+Oh+Av+Mk+xe+p+r+n+o+e,1,i+Re+Nn+x+mi+p+r+n+o+e,1,i+Re+Nn+x+mi+p+r+n+W+e,1,i+Re+jn+x+mi+p+r+n+o+e,1,i+Re+jn+x+mi+p+r+n+W+e,1,i+Re+Ll+re+mi+p+r+n+o+e,1,i+Re+Ll+re+mi+p+r+n+W+e,1,l+Hr+qr+$t+qa+V+p+r+n+o+e,1,l+Hr+qr+$t+qa+Zt+p+r+n+h+e,1,l+Zr+bf+Wr+qa+V+Tl+r+n+o+e,1,l+Zr+bf+Wr+qa+Zt+Rs+r+n+h+e,1,dr+iS+qy+f+kf+Z+Km+r+n+o+e,1,l+gr+xu+X+Gs+Ae+Tt+r+n+o+e,1,l+gr+xu+X+Gs+Et+nt+r+n+h+e,1,l+yr+_r+$+Gs+Ae+Tt+r+n+o+e,1,l+yr+_r+$+Gs+Et+nt+r+n+h+e,1,l+Ut+vr+mf+lt+Ae+Tt+r+n+o+e,1,l+Ut+vr+mf+lt+Et+nt+r+n+h+e,1,l+Vh+zm+br+gf+Ae+Tt+r+n+o+e,1,l+Vh+zm+br+gf+Et+nt+r+n+h+e,1,l+wr+xr+yf+Cl+Ae+Tt+r+n+o+e,1,l+wr+xr+yf+Cl+Et+nt+r+n+h+e,1,l+kr+Sr+Mr+Il+Ae+Tt+r+n+o+e,1,l+kr+Sr+Mr+Il+Et+nt+r+n+h+e,1,l+Qh+Kh+bn+ke+Fo+Uo+r+n+o+e,1,l+Qh+Kh+bn+ke+Ze+an+r+n+h+e,1,l+Mi+Ai+X+ke+Fo+Uo+r+n+o+e,1,l+Mi+Ai+X+ke+Ze+an+r+n+h+e,1,l+Ut+Ar+L+ke+Fo+Uo+r+n+o+e,1,l+Ut+Ar+L+ke+Ze+an+r+n+h+e,1,l+Er+_f+Cr+Mu+Om+Pm+r+n+o+e,1,l+Er+_f+Cr+Mu+Ic+Rc+r+n+h+e,1,i+Tn+Bn+vf+R+p+r+n+o+e,1,i+Tn+Bn+vf+rt+p+r+n+h+e,1,i+Gt+dn+Bt+R+p+r+n+o+e,1,i+Gt+dn+Bt+rt+p+r+n+h+e,1,dr+" +lat_1=24"+pk+" +lat_0=24"+Xf+V+p+r+n+o+e,1,l+Yh+Tr+Hm+Xh+E+p+r+n+o+e,1,l+Yh+Tr+Hm+Xh+E+p+r+n+h+e,1,i+Gt+ep+Bt+R+p+r+n+o+e,1,i+Gt+ep+Bt+rt+p+r+n+h+e,1,i+Es+Dn+x+R+p+r+n+o+e,1,i+Es+Dn+x+rt+p+r+n+h+e,1,i+Es+Fn+x+pi+p+r+n+o+e,1,i+Es+Fn+x+ln+p+r+n+h+e,1,i+z+hu+se+m+p+r+n+o+e,1,i+z+hu+se+it+p+r+n+h+e,1,i+z+Un+se+R+p+r+n+o+e,1,i+z+Un+se+rt+p+r+n+h+e,1,i+z+Rl+re+vn+p+r+n+o+e,1,i+z+Rl+re+jc+p+r+n+h+e,1,i+L+Vn+li+at+p+r+n+o+e,1,i+L+Vn+li+ne+p+r+n+h+e,1,i+L+Qn+Bt+pi+p+r+n+o+e,1,i+L+Qn+Bt+Zc+p+r+n+h+e,1,i+sr+Kn+dt+ye+qu+r+n+o+e,1,i+sr+Kn+dt+Hc+Xo+r+n+h+e,1,i+sr+Yn+dt+sa+qu+r+n+o+e,1,i+sr+Yn+dt+sa+Xo+r+n+h+e,1,l+Vr+Qr+Po+Ko+bt+st+r+n+o+e,1,l+Vr+Qr+Po+Ko+bt+Jo+r+n+h+e,1,l+kt+Kr+jo+Ko+m+p+r+n+o+e,1,l+kt+Kr+jo+Ko+ot+p+r+n+h+e,1,l+Yr+Xr+mt+Co+V+p+r+n+o+e,1,l+Yr+Xr+mt+Co+Zt+p+r+n+h+e,1,l+Jr+$r+L+yn+V+Tl+r+n+o+e,1,l+Jr+$r+L+yn+Zt+Rs+r+n+h+e,1,l+Yt+mr+sr+ku+m+p+r+n+o+e,1,l+Yt+mr+sr+ku+it+p+r+n+h+e,1,l+Mo+Ao+tt+gi+bt+st+r+n+o+e,1,l+Mo+Ao+tt+gi+bt+un+r+n+h+e,1,l+Ei+Ci+tt+gi+m+Tt+r+n+o+e,1,l+Ei+Ci+tt+gi+it+nt+r+n+h+e,1,l+lo+uo+ul+va+xe+p+r+n+o+e,1,l+lo+uo+ul+va+vi+p+r+n+h+e,1,l+jd+Nd+Bd+Pe+xe+p+r+n+o+e,1,l+jd+Nd+Bd+Pe+vi+p+r+n+h+e,1,i+bk+ry+Gl+m+p+r+n+o+e,1,i+ht+$g+Gl+pi+p+r+n+o+e,1,i+te+ty+Gl+at+p+r+n+o+e,1,i+ut+Ys+x+at+p+r+n+o+e,1,i+te+Xn+dt+sa+p+r+n+o+e,1,l+Xc+Ed+$+lc+V+p+r+n+o+e,1,l+kt+tn+Ue+oe+ot+Jo+r+n+h+e,1,i+bh+Xy+dt+P+p+j+qo+h+e,1,i+wh+Ku+dt+P+p+j+qo+h+e,1,i+hs+Hu+bu+P+p+j+qo+h+e,1,i+xh+Jy+bu+P+p+j+qo+h+e,1,i+kh+Yu+" +k=1"+P+p+j+qo+h+e,1,l+zl+en+mt+oe+ot+jf+r+n+h+e,1,l+Hl+nn+L+oe+ot+Io+r+n+h+e,1,l+kt+tn+Ue+oe+ot+Jo+r+n+h+e,1,l+zl+en+mt+oe+ot+jf+r+n+h+e,1,l+Hl+nn+L+oe+ot+Io+r+n+h+e,1,ya+Oa+_y+Z+p+v+o+e,1,ya+Oa+Gd+Z+p+v+o+e,1,ya+Oa+pn+Z+p+v+o+e,1,ya+Oa+" +lon_0=-40"+Z+p+v+o+e,1,ya+Oa+Mc+Z+p+v+o+e,1,ya+Oa+Ta+Z+p+v+o+e,1,dr+" +lat_1=-18"+MS+f+xl+Z+p+r+n+o+e,1,dr+bw+" +lat_2=68 +lat_0=59 +lon_0=-132.5"+m+Tt+r+n+o+e,1,dr+bw+" +lat_2=68 +lat_0=59 +lon_0=-132.5"+m+Tt+r+n+o+e,1,l+" +lat_1=62 +lat_2=70"+f+" +lon_0=-112"+Z+p+r+n+o+e,1,l+" +lat_1=62 +lat_2=70"+f+" +lon_0=-112"+Z+p+r+n+o+e,1,l+Xc+Ed+$+lc+Nc+p+r+n+h+e,1,l+Oi+Pi+Al+Ya+m+p+r+n+o+e,1,l+Oi+Pi+Al+Ya+it+p+r+n+h+e,1,l+Ti+Or+Al+Vo+R+pf+r+n+o+e,1,l+Ti+Or+Al+Vo+rt+pf+r+n+h+e,1,l+Cd+ji+Ni+ee+lm+p+r+n+o+e,1,l+Cd+ji+Ni+ee+Dc+p+r+n+W+e,1,l+Li+Ii+Ri+gu+ev+p+r+n+o+e,1,l+Li+Ii+Ri+gu+Bc+p+r+n+W+e,1,gn+Sh+" +lonc=-86"+Lm+pt+Im+Yp+Fu+Rm+r+n+o+e,1,l+Fe+Td+Po+ee+$h+p+r+n+o+e,1,l+Fe+Td+Po+ee+Vd+p+r+n+W+e,1,l+rf+fo+tl+Eu+vn+ni+r+n+o+e,1,l+ho+co+El+Jn+vn+ni+r+n+o+e,1,l+po+mo+cd+nd+vn+ni+r+n+o+e,1,i+xa+Gn+cn+at+p+r+n+o+e,1,i+xa+Gn+cn+ne+p+r+n+h+e,1,i+xa+We+cn+pi+p+r+n+o+e,1,i+xa+We+cn+ln+p+r+n+h+e,1,i+Mn+va+re+m+p+r+n+o+e,1,i+Mn+Ug+re+qe+p+r+n+o+e,1,i+pl+Gg+Bt+hk+p+r+n+o+e,1,l+Zh+Lg+Jc+rl+E+p+r+n+o+e,1,l+Zh+Lg+Jc+rl+cr+p+r+n+W+e,1,l+nu+xu+go+pn+m+p+r+n+o+e,1,i+fn+tr+x+m+ba+r+n+o+e,1,i+fn+tr+x+ot+ba+r+n+h+e,1,i+fn+$n+x+R+nv+r+n+o+e,1,i+fn+$n+x+js+qc+r+n+h+e,1,i+fn+er+x+vn+tc+r+n+o+e,1,i+fn+er+x+Dt+Rf+r+n+h+e,1,i+Lo+nr+dt+at+p+r+n+o+e,1,i+Lo+nr+dt+ne+p+r+n+h+e,1,i+Xt+Os+x+Ne+p+r+n+o+e,1,i+Xt+Os+x+Ne+p+r+n+h+e,1,i+Re+jl+x+m+p+r+n+o+e,1,i+Re+jl+x+it+p+r+n+h+e,1,i+Re+zn+Ma+Od+p+r+n+o+e,1,i+Re+zn+Ma+Od+p+r+n+h+e,1,i+Re+Hn+Nl+ck+p+r+n+o+e,1,i+Re+Hn+Nl+Fc+p+r+n+h+e,1,i+jo+qn+Ct+qe+p+r+n+o+e,1,i+jo+qn+Ct+Uc+p+r+n+h+e,1,i+Xt+Os+x+Ne+p+r+n+o+e,1,i+Xt+Os+x+Ne+p+r+n+h+e,1,l+Pr+Lr+Jt+np+at+p+r+n+o+e,1,l+Pr+Lr+Jt+np+ne+p+r+n+h+e,1,i+jo+Zn+Ct+hg+p+r+n+o+e,1,i+jo+Zn+Ct+Gc+p+r+n+h+e,1,l+Bi+Di+Jh+Jf+ey+p+r+n+o+e,1,l+Bi+Di+Jh+Jf+A+p+r+n+h+e,1,l+ie+Fi+fl+yi+E+p+r+n+o+e,1,l+ie+Fi+fl+yi+cr+p+r+n+W+e,1,l+Ui+Gi+Ee+yi+E+p+r+n+o+e,1,l+Ui+Gi+Ee+yi+cr+p+r+n+W+e,1,l+Dd+yo+we+ci+E+p+r+n+o+e,1,l+_o+vo+Tn+ci+E+p+r+n+o+e,1,l+Ir+zi+qm+Co+E+p+r+n+o+e,1,l+Ir+zi+qm+Co+E+p+r+n+h+e,1,l+Hi+qi+Rr+Co+E+p+r+n+o+e,1,l+Hi+qi+Rr+Co+E+p+r+n+h+e,1,l+nu+Sa+Yo+lt+V+p+r+n+o+e,1,l+nu+Sa+Yo+lt+ac+p+r+n+W+e,1,l+Gp+wn+ut+lt+On+p+r+n+o+e,1,l+Gp+wn+ut+lt+Wu+p+r+n+W+e,1,l+zp+xn+z+lt+bt+p+r+n+o+e,1,l+zp+xn+z+lt+Vu+p+r+n+W+e,1,l+$c+Zi+Jt+_i+E+p+r+n+o+e,1,l+$c+Zi+Jt+_i+E+p+r+n+h+e,1,l+jr+Nr+X+_i+E+p+r+n+o+e,1,l+jr+Nr+X+_i+E+p+r+n+h+e,1,i+ti+Vo+sc+ye+p+r+n+o+e,1,i+ti+Vo+sc+iu+p+r+n+h+e,1,l+Wi+Pd+Br+dn+Ld+p+r+n+o+e,1,l+Wi+Pd+Br+dn+Ld+p+r+n+W+e,1,l+bo+wo+ht+pn+E+p+r+n+o+e,1,l+bo+wo+ht+pn+E+p+r+n+h+e,1,l+Fd+xo+ei+Pt+E+p+r+n+o+e,1,l+Fd+xo+ei+Pt+E+p+r+n+h+e,1,l+Vi+tf+$t+Vc+E+p+r+n+o+e,1,l+Vi+tf+$t+Vc+E+p+r+n+h+e,1,l+Xi+Ji+kn+Pt+pi+Io+r+n+o+e,1,l+Xi+Ji+kn+Pt+ln+Io+r+n+h+e,1,dr+Ud+Ng+Xd+pn+bt+ba+r+n+o+e,1,l+Ud+Ng+Xd+pn+bt+Tu+r+n+o+e,1,l+Qi+ef+Zm+Au+R+st+r+n+o+e,1,l+Qi+ef+Zm+Au+rt+un+r+n+h+e,1,l+Ki+Yi+Dr+yn+E+In+r+n+o+e,1,l+Ki+Yi+Dr+yn+E+Ls+r+n+h+e,1,l+Je+$e+Sn+yn+at+Tu+r+n+o+e,1,l+Je+$e+Sn+yn+ne+ad+r+n+h+e,1,l+$i+to+Fr+yu+E+tc+r+n+o+e,1,l+$i+to+Fr+yu+E+sd+r+n+h+e,1,l+zl+en+mt+oe+m+In+r+n+o+e,1,l+zl+en+mt+oe+_s+Wg+r+n+W+e,1,l+zl+en+mt+oe+ot+jf+r+n+h+e,1,l+kt+tn+Ue+oe+m+st+r+n+o+e,1,l+kt+tn+Ue+oe+_s+bm+r+n+W+e,1,l+kt+tn+Ue+oe+ot+Jo+r+n+h+e,1,l+Hl+nn+L+oe+m+Io+r+n+o+e,1,l+Hl+nn+L+oe+_s+Vg+r+n+W+e,1,l+Hl+nn+L+oe+ot+Io+r+n+h+e,1,i+Lo+ec+Bl+m+p+r+n+o+e,1,l+Id+eo+$+Qo+Be+In+r+n+o+e,1,l+Id+eo+$+Qo+Is+Ls+r+n+h+e,1,l+Yt+Ur+tt+Qo+Be+st+r+n+o+e,1,l+Yt+Ur+tt+Qo+Is+un+r+n+h+e,1,l+ie+Rd+fl+Wn+m+p+r+n+o+e,1,l+ie+Rd+fl+Wn+it+p+r+n+h+e,1,l+no+ro+Gr+lt+m+p+r+n+o+e,1,l+no+ro+Gr+lt+it+p+r+n+h+e,1,l+of+jg+wf+ms+E+p+r+n+o+e,1,l+ko+So+Vm+dn+E+p+r+n+o+e,1,l+cu+nf+ht+He+E+p+r+n+o+e,1,l+cu+nf+ht+He+E+p+r+n+h+e,1,l+io+oo+zr+He+E+p+r+n+o+e,1,l+io+oo+zr+He+E+p+r+n+h+e,1,l+so+ao+Hp+He+E+p+r+n+o+e,1,l+so+ao+Hp+He+E+p+r+n+h+e,1,i+f+He+pt+dk+$y+r+n+o+e,1,i+Ke+rr+Ct+R+p+r+n+o+e,1,i+Ke+ir+Ct+V+ni+r+n+o+e,1,i+Ke+Dl+Ct+E+p+r+n+o+e,1,i+Ke+or+Ct+vn+ni+r+n+o+e,1,u+_d+r+n+o+e,1,u+Bp+r+n+o+e,1,u+Oy+r+n+o+e,1,u+F_+r+n+o+e,1,u+ak+r+n+o+e,1,u+z_+r+n+o+e,1,u+Cg+r+n+o+e,1,u+ly+r+n+o+e,1,u+Tg+r+n+o+e,1,u+U_+r+n+o+e,1,u+G_+r+n+o+e,1,u+Cm+r+n+o+e,1,u+bd+r+n+o+e,1,u+wd+r+n+o+e,1,u+xd+r+n+o+e,1,u+Sd+r+n+o+e,1,u+Zf+r+n+o+e,1,u+Wf+r+n+o+e,1,u+wl+r+n+o+e,1,u+Ga+r+n+o+e,1,u+wa+r+n+o+e,1,i+" +lat_0=-21.11666666666667 +lon_0=55.53333333333333 +k=1 +x_0=160000"+vy+_+Ty+o+e,1,l+Dd+yo+we+ci+E+p+r+n+h+e,1,l+_o+vo+Tn+ci+E+p+r+n+h+e,1,i+Ke+rr+Ct+js+p+r+n+h+e,1,i+Ke+ir+Ct+Zt+Ft+r+n+h+e,1,i+Ke+Dl+Ct+E+p+r+n+h+e,1,i+Ke+or+Ct+Dt+Ft+r+n+h+e,1,l+Dd+yo+we+ci+E+p+r+n+h+e,1,l+_o+vo+Tn+ci+E+p+r+n+h+e,1,i+Ke+rr+Ct+js+p+r+n+h+e,1,i+Ke+ir+Ct+Zt+Ft+r+n+h+e,1,i+Ke+Dl+Ct+E+p+r+n+h+e,1,i+Ke+or+Ct+Dt+Ft+r+n+h+e,1,u+Cm+r+n+o+e,1,u+bd+r+n+o+e,1,u+wd+r+n+o+e,1,u+xd+r+n+o+e,1,u+Sd+r+n+o+e,1,u+Zf+r+n+o+e,1,u+Wf+r+n+o+e,1,u+wl+r+n+o+e,1,u+Ga+r+n+o+e,1,u+wa+r+n+o+e,1,u+z_+r+n+o+e,1,u+Cg+r+n+o+e,2,l+Dd+yo+we+ci+E+p+r+n+h+e,1,l+_o+vo+Tn+ci+E+p+r+n+h+e,1,i+Ke+rr+Ct+js+p+r+n+h+e,1,i+Ke+ir+Ct+Zt+Ft+r+n+h+e,1,i+Ke+Dl+Ct+E+p+r+n+h+e,1,i+Ke+or+Ct+Dt+Ft+r+n+h+e,1,i+hs+Hu+bu+ot+p+r+n+h+e,1,i+hs+Hu+bu+ot+p+r+n+h+e,1,u+Ml+r+n+o+e,1,l+" +lat_1=-54 +lat_2=-54.75 +lat_0=-55 +lon_0=-37"+Z+p+v+o+e,1,i+" +lat_0=39.66825833333333 +lon_0=-8.133108333333334 +k=1"+Z+p+r+n+o+e,1,i+LS+t_+" +k=1"+V+hn+r+n+o+e,1,i+f+fk+x+m+p+r+n+o+e,1,l+" +lat_1=45.91666666666666 +lat_2=43.08333333333334"+f+fk+Z+p+r+n+o+e,1,u+Bu+r+n+o+e,1,u+Vf+r+n+o+e,1,u+Us+j+R_+o+e,1,i+" +lat_0=32 +lon_0=-64.75 +k=1 +x_0=550000"+ni+N+n+o+e,1,i+f+Zu+x+Z+p+S+o+e,1,i+f+hu+x+Z+p+S+o+e,1,i+f+pc+x+Z+p+S+o+e,2,i+f+Zu+x+Z+p+r+n+o+e,1,i+f+hu+x+Z+p+r+n+o+e,1,i+f+pc+x+Z+p+r+n+o+e,2,i+f+Zu+x+Z+p+r+n+o+e,1,i+f+hu+x+Z+p+r+n+o+e,1,i+f+pc+x+Z+p+r+n+o+e,2,i+" +lat_0=-25.06855261111111 +lon_0=-130.1129671111111 +k=1 +x_0=14200 +y_0=15500"+N+n+o+e,1,u+G_+G+_+q_+o+e,4,i+f+CS+" +k=1"+Be+jt+r+n+o+e,1,i+f+" +lon_0=169 +k=1"+Be+jt+r+n+o+e,1,i+f+" +lon_0=179 +k=1"+Be+jt+r+n+o+e,1,i+f+" +lon_0=-178 +k=1"+Be+jt+r+n+o+e,2,i+f+t_+" +k=1"+Be+jt+r+n+o+e,1,i+f+Ss+x+m+si+r+n+o+e,1,l+" +lat_1=23 +lat_2=21.7 +lat_0=22.35"+dn+m+" +y_0=280296.016"+S+o+e,1,l+" +lat_1=21.3 +lat_2=20.13333333333333 +lat_0=20.71666666666667 +lon_0=-76.83333333333333"+m+" +y_0=229126.939"+S+o+e,1,l+eS+ud+hl+" +lon_0=-70"+vn+p+S+o+e,1,l+eS+ud+hl+" +lon_0=-70"+vn+p+r+n+o+e,1,l+eS+ud+hl+" +lon_0=-70"+vn+p+r+n+o+e,1,i+f+kf+x+Z+p+S+o+e,1,i+f+kf+x+Z+p+r+n+o+e,1,i+f+kf+x+Z+p+r+n+o+e,10,l+Mh+Ah+" +lat_0=50.797815"+vw+" +x_0=649328 +y_0=665262"+r+n+o+e,2,i+dc+e_+rv+m+hm+r+n+o+e,1,i+dc+e_+rv+m+hm+r+n+o+e,1,i+dc+e_+rv+m+hm+r+n+o+e,3,c+M+" +towgs84=595.48,121.69,515.35,4.115,-2.9383,0.853,-3.408"+e,2,c+Y+e,3,c+r+n+e,1,i+f+AS+x+qe+p+r+n+o+e,1,i+f+ES+x+qe+p+r+n+o+e,1,i+f+AS+x+qe+p+Y+o+e,1,i+f+ES+x+qe+p+Y+o+e,1,u+hf+_+hy+o+e,3,ru+ip+" +k=1"+Z+p+v+o+e,1,i+f+Nu+" +k=1"+On+p+d+C+o+e,1,i+f+Nu+" +k=1"+On+p+d+zt+o+e,1,i+f+Ss+" +k=1"+Be+p+d+zt+o+e,1,i+f+As+" +k=1"+ur+p+d+zt+o+e,1,i+f+Nu+" +k=1"+Be+p+d+C+o+e,1,i+f+Wa+" +k=1"+ur+p+d+C+o+e,1,i+f+ea+" +k=1"+Yc+p+d+C+o+e,1,i+f+cl+" +k=1"+rc+p+d+C+o+e,1,i+f+Gm+" +k=1"+Cu+p+d+zt+o+e,3,us+" +lat_0=46"+Pg+my+m+Tt+d+C+o+e,1,i+f+" +lon_0=11.30625 +k=1.000006 +x_0=1500025.141 +y_0=-667.282"+r+n+o+e,1,i+f+" +lon_0=13.55626666666667 +k=1.0000058 +x_0=1500044.695 +y_0=-667.13"+r+n+o+e,1,i+f+" +lon_0=15.80628452944445 +k=1.00000561024 +x_0=1500064.274 +y_0=-667.711"+r+n+o+e,1,i+f+" +lon_0=18.0563 +k=1.0000054 +x_0=1500083.521 +y_0=-668.8440000000001"+r+n+o+e,1,i+f+" +lon_0=20.30631666666667 +k=1.0000052 +x_0=1500102.765 +y_0=-670.706"+r+n+o+e,1,i+f+" +lon_0=22.55633333333333 +k=1.0000049 +x_0=1500121.846 +y_0=-672.557"+r+n+o+e,1,l+" +lat_1=-37.5 +lat_2=-44.5 +lat_0=-41 +lon_0=173"+cM+" +y_0=7000000"+r+n+o+e,1,l+It+Rt+F+" +lon_0=157"+m+p+r+n+o+e,2,i+f+" +lon_0=18.05787 +k=0.99999506 +x_0=100182.7406 +y_0=-6500620.1207"+r+n+o+e,3,ru+" +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0"+p+" +k=1.0"+o+" +nadgrids=@null +wktext "+e,16,i+f+Og+" +k=1"+La+p+r+n+o+e,1,i+f+Sv+" +k=1"+la+p+r+n+o+e,1,i+f+As+" +k=1"+ja+p+r+n+o+e,1,i+f+rS+" +k=1"+ua+p+r+n+o+e,1,i+f+jy+" +k=1"+Na+p+r+n+o+e,1,i+f+Va+" +k=1"+oc+p+r+n+o+e,1,i+f+Pg+" +k=1"+Ba+p+r+n+o+e,1,i+f+Mv+" +k=1"+Da+p+r+n+o+e,1,i+f+ea+" +k=1"+Fa+p+r+n+o+e,1,i+f+Bg+" +k=1"+Ua+p+r+n+o+e,1,i+f+" +lon_0=29 +k=1"+Ds+p+r+n+o+e,1,i+f+cl+" +k=1"+il+p+r+n+o+e,1,i+f+Um+" +k=1"+ys+p+r+n+o+e,4,c+r+n+e,1,u+Du+r+n+o+e,1,u+lu+r+n+o+e,1,u+Kl+r+n+o+e,1,i+ww+" +lon_0=46.5 +k=0.9994"+vn+p+_+U+o+e,13,c+M+Vt+e,6,i+f+Ss+x+m+si+M+Vt+o+e,8,u+Us+j+du+o+e,22,l+" +lat_1=41.25 +lat_2=42.75"+Hp+yp+Ou+$_+r+n+o+e,1,l+" +lat_1=42.25 +lat_2=43.75"+cd+yp+Ou+" +y_0=2200000"+r+n+o+e,1,l+" +lat_1=43.25 +lat_2=44.75"+hl+yp+Ou+" +y_0=3200000"+r+n+o+e,1,l+" +lat_1=44.25 +lat_2=45.75"+tl+yp+Ou+" +y_0=4200000"+r+n+o+e,1,l+" +lat_1=45.25 +lat_2=46.75 +lat_0=46"+yp+Ou+" +y_0=5200000"+r+n+o+e,1,l+fM+" +lat_2=47.75"+fl+yp+Ou+" +y_0=6200000"+r+n+o+e,1,l+" +lat_1=47.25 +lat_2=48.75 +lat_0=48"+yp+Ou+" +y_0=7200000"+r+n+o+e,1,l+" +lat_1=48.25 +lat_2=49.75 +lat_0=49"+yp+Ou+" +y_0=8200000"+r+n+o+e,1,l+" +lat_1=49.25 +lat_2=50.75"+tS+yp+Ou+" +y_0=9200000"+r+n+o+e,18,l+" +lat_1=37"+Ak+es+ms+Z+p+r+n+o+e,1,l+" +lat_1=37"+Ak+es+ms+Z+p+r+n+o+e,1,l+" +lat_1=37"+Ak+es+ms+Z+p+r+n+o+e,6,fe+F+" +lat_ts=-70"+ta+" +k=1"+Z+p+v+o+e,2,l+Zh+Qa+" +lat_0=49 +lon_0=-95"+Z+p+r+n+o+e,1,l+Zh+Qa+" +lat_0=49 +lon_0=-95"+Z+p+r+n+o+e,7,i+sS+cl+" +k=1"+R+Tt+j+_n+o+e,1,i+sS+Bg+" +k=1"+R+Tt+j+_n+o+e,1,i+sS+Mv+" +k=1"+R+Tt+j+_n+o+e,1,i+sS+Va+" +k=1"+R+Tt+j+_n+o+e,2,l+cs+fs+ds+Ho+P+p+j+du+h+e,1,l+cs+fs+ds+Ho+P+vm+j+du+h+e,2,ru+" +lon_0=100 +lat_ts=-41"+Z+p+v+o+e,1,fe+Oa+" +lat_ts=71"+ta+" +k=1"+Z+p+v+o+e,1,fe+Oa+" +lat_ts=75"+ta+" +k=1"+Z+p+v+o+e,1,i+f+" +lon_0=55.33333333333334 +k=1"+m+p+v+o+e,4,c+Vp+e,1,c+hp+e,1,c+Y+e,1,c+M+e,1,c+Aa+ri+e,1,c+zs+e,1,c+xi+ki+e,1,c+j+e,2,c+id+od+e,1,c+vt+he+e,1,c+T+e,1,c+Me+me+e,1,c+vt+" +b=6356514.996941779"+e,1,c+Ve+Kt+e,1,c+vc+e,2,c+ts+Qe+e,1,c+r+e,1,c+Cs+e,1,c+nl+Oe+e,1,c+_+e,1,c+r+n+e,0,c+r+n+e,1,c+d+e,1,c+dM+e,1,i+f+" +lon_0=28.4 +k=0.9999400000000001"+R+si+r+n+o+e,1,c+" +a=6376523"+xg+e,1,c+eM+bg+e,1,c+og+Ea+e,1,c+N+e,1,c+N+e,1,c+" +a=6378136.2 +b=6356751.516927429"+e,1,c+" +a=6378136.3 +b=6356751.616592146"+e,1,c+kg+Sg+e,2,c+pM+e,1,u+mh+v+o+e,1,u+uf+v+o+e,3,c+em+Ps+e,1,c+Xs+Ns+e,1,c+b+e,1,c+bc+Ca+e,1,c+Ts+mn+e,1,c+r+n+e,1,c+" +a=6371007 +b=6371007"+e,1,i+f+Wa+x+m+jt+r+n+o+e,1,i+f+" +lon_0=14"+x+m+jt+r+n+o+e,1,i+f+" +lon_0=16"+x+m+jt+r+n+o+e,1,i+f+Gm+x+m+jt+r+n+o+e,1,c+" +a=6370997 +b=6370997"+e,1,c+TS+OS+e,1,c+PS+ny+e,2,i+f+Sv+x+m+jt+r+n+o+e,1,i+f+rS+x+m+jt+r+n+o+e,1,i+f+Va+x+m+jt+r+n+o+e,1,i+f+Mv+x+m+jt+r+n+o+e,1,i+f+Bg+x+m+jt+r+n+o+e,1,u+Bu+G+r+n+o+e,1,u+Vf+G+r+n+o+e,1,u+mh+G+r+n+o+e,8,u+Lc+G+_+k_+o+e,4,c+r+n+e,6,c+r+n+e,1,u+Py+r+n+o+e,1,u+uu+r+n+o+e,4,"+proj=eqc +lat_ts=0"+f+ta+Z+p+v+o+e,1,"+proj=eqc +lat_ts=0"+f+ta+Z+p+" +a=6371007 +b=6371007"+o+e,5,i+f+Nu+Gl+R+si+r+n+o+e,1,i+f+Mc+Gl+V+si+r+n+o+e,1,i+f+" +lon_0=11.75"+Gl+E+si+r+n+o+e,1,i+f+Ss+" +k=1"+vn+si+r+n+o+e,24,c+M+e,1,c+r+Xm+e,1,c+em+Ps+e,1,c+_+qt+e,1,c+M+ve+e,3,c+j+Ws+e,1,c+j+e,1,c+j+e,1,c+N+Ju+e,1,c+Ve+Kt+Jl+e,1,c+T+Am+e,1,c+r+Ec+e,1,c+T+ws+e,1,c+j+qo+e,1,c+j+e,1,c+j+e,1,c+j+e,1,c+j+du+e,2,c+r+_v+e,1,c+T+Xl+e,1,c+T+Ha+e,1,c+Ve+Kt+$l+e,1,c+bc+Ca+os+e,1,c+Ts+mn+ge+e,1,c+d+Vs+e,1,c+N+n+e,1,c+M+bs+e,1,c+M+xm+e,1,c+r+n+e,1,c+r+n+e,1,c+_+km+e,1,c+_+Fs+e,1,c+vt+he+pd+e,1,c+M+xs+e,1,c+xi+ki+e,1,c+_+Sm+e,1,c+_+Q+e,1,c+_+e,1,c+_+ky+e,1,c+M+e,1,c+N+n+e,1,c+d+Uf+e,1,c+_+O_+e,1,c+N+n+e,1,c+r+n+e,1,c+og+Ea+Df+e,1,c+j+b_+e,1,c+r+n+e,1,c+r+n+e,2,c+r+n+e,1,c+og+Ea+e,1,c+T+Yd+e,1,c+r+n+e,2,c+d+zt+e,1,c+d+C+e,1,c+r+n+e,1,c+_+Lu+e,1,c+_+p_+e,1,c+_+m_+e,1,c+_+P_+e,4,c+Vp+Se+e,1,c+r+n+e,1,c+r+n+e,1,c+d+e,1,c+_+tg+e,1,c+vt+he+Mg+e,1,c+_+Nf+e,1,c+_+" +towgs84=105,326,-102.5,0,0,0.814,-0.6"+e,1,c+_+" +towgs84=-45,417,-3.5,0,0,0.814,-0.6"+e,1,c+T+e,1,c+T+e,1,c+_+e,1,c+d+a+e,1,c+T+ha+e,1,c+Y+q+e,1,c+Y+Ye+e,1,c+_+Rn+e,1,c+d+Gf+e,1,c+vt+he+e,1,c+_+di+e,1,c+_+bi+e,1,c+Me+me+Sl+e,1,c+T+ui+e,1,c+M+Pn+e,1,c+T+Pu+e,1,c+vt+he+g_+e,1,c+d+w+e,1,c+_+e,1,c+j+R_+e,1,i+f+hc+pt+B+p+r+n+h+e,0,i+f+hc+pt+B+p+r+n+h+e,1,c+_+hi+e,1,c+M+" +towgs84=-384,664,-48,0,0,0,0"+e,1,c+T+rs+e,1,c+_+Ge+e,1,c+Me+me+Qt+e,1,c+vt+he+ks+e,1,c+_+k_+e,1,c+_+ss+e,2,c+vt+he+Ks+e,2,c+Cs+ca+e,1,c+_+U+e,1,c+_+" +towgs84=-83.11,-97.38,-117.22,0.00569291,-0.0446976,0.0442851,0.1218"+e,1,c+T+zf+e,4,c+_+hy+e,1,c+pM+Ag+e,1,c+nl+Oe+Wt+e,1,c+Ve+Kt+tu+e,1,c+Ve+Kt+Hf+e,1,c+kg+Sg+e,1,c+j+S_+e,1,c+Xs+Ns+e,1,c+Ve+Kt+Z_+e,1,c+ts+Qe+_e+e,1,c+T+rg+e,1,c+_+ma+e,1,c+_+xt+e,1,c+_+e,1,c+T+j_+e,1,c+T+" +towgs84=-90,40,88,0,0,0,0"+e,1,c+vt+he+e,1,c+j+Zo+e,1,c+_+Kd+e,1,c+_+" +towgs84=-333,-222,114,0,0,0,0"+e,1,c+T+" +towgs84=41,-220,-134,0,0,0,0"+e,1,c+M+fa+e,1,c+r+n+e,1,c+_+$m+e,2,c+vt+he+$a+e,1,c+M+W_+e,1,c+T+as+e,2,c+_+sn+e,1,c+vt+he+qf+e,1,c+S+e,2,c+r+n+e,1,c+T+lr+e,1,c+_+N_+e,1,c+_+k+e,1,c+Aa+ri+Mt+e,1,c+_+Ql+e,1,c+vt+he+Ie+e,1,c+dM+e,1,c+Vp+Cc+e,1,c+Vp+e,1,c+Vp+e,1,c+M+e,1,c+id+od+fr+e,1,c+vt+he+M_+e,1,c+r+n+e,1,c+d+s+e,1,c+_+Dm+e,1,c+Cs+e,2,c+_+e,1,c+M+Do+e,3,c+_+md+e,1,c+zs+ze+e,2,c+M+e,2,c+_+qs+e,1,c+vc+Wo+e,1,c+hp+Se+e,1,c+hp+Se+e,1,c+M+I+e,1,c+xi+ki+Vl+e,1,c+Cs+e,1,c+vt+he+Fl+e,2,c+M+e,1,c+T+Ot+e,1,c+M+e,1,c+_+" +towgs84=-155,171,37,0,0,0,0"+e,1,c+vt+he+e,1,c+_+Zs+e,1,c+M+J+e,1,c+_+is+e,1,c+M+et+e,1,c+vt+he+gd+e,1,c+_+Fm+e,2,c+N+Qc+e,1,c+r+cy+e,3,c+b+g+e,2,c+b+y+e,2,c+v+e,64,Ln+" +lat_0=2.042583333333333 +lon_0=103.5627583333333"+Z+p+ts+Qe+_e+o+e,1,Ln+" +lat_0=2.712283333333334 +lon_0=101.9411666666667 +x_0=-242.005 +y_0=-948.547"+ts+Qe+_e+o+e,1,Ln+" +lat_0=3.710972222222222 +lon_0=102.4361777777778"+Z+p+ts+Qe+_e+o+e,1,Ln+" +lat_0=3.680344444444444 +lon_0=101.5082444444444 +x_0=-21759.438 +y_0=55960.906"+ts+Qe+_e+o+e,1,Ln+" +lat_0=4.946141666666667 +lon_0=102.8952083333333"+Z+p+ts+Qe+_e+o+e,1,Ln+" +lat_0=5.421325 +lon_0=100.3458694444444"+Z+p+ts+Qe+_e+o+e,1,Ln+" +lat_0=5.965147222222223 +lon_0=100.6375944444444"+Z+p+ts+Qe+_e+o+e,1,Ln+" +lat_0=4.859380555555555 +lon_0=100.8167666666667"+Z+" +y_0=133453.669"+ts+Qe+_e+o+e,1,Ln+" +lat_0=5.893922222222222 +lon_0=102.1772916666667"+Z+p+ts+Qe+_e+o+e,1,i+f+hc+pt+B+p+S+h+e,1,i+f+Gu+pt+B+p+S+h+e,1,i+f+zu+pt+B+p+S+h+e,1,i+f+fc+pt+B+p+S+h+e,1,i+f+Hy+pt+B+p+S+h+e,1,i+f+" +lon_0=-159"+pt+B+p+S+h+e,0,i+f+" +lon_0=-159"+pt+B+p+S+h+e,1,i+f+yk+pt+B+p+S+h+e,1,i+f+dg+pt+B+p+S+h+e,1,i+f+" +lon_0=-141"+pt+B+p+S+h+e,1,i+f+_k+pt+B+p+S+h+e,1,i+f+Ek+pt+B+p+S+h+e,1,i+f+" +lon_0=-123"+pt+B+p+S+h+e,1,i+f+pc+pt+B+p+S+h+e,1,i+f+Zu+pt+B+p+S+h+e,1,i+f+" +lon_0=-105"+pt+B+p+S+h+e,1,i+" +lat_0=13.5 +lon_0=144.75 +k=1"+ye+Ka+r+n+o+e,1,l+" +lat_1=-6.5 +lat_2=-11.5"+sS+Mv+m+Tt+j+_n+o+e,2,i+f+As+" +k=1"+Xa+p+d+zt+o+e,1,i+f+Iv+pt+B+p+S+h+e,1,i+f+Wc+pt+B+p+S+h+e,1,i+f+Gu+pt+B+p+r+n+h+e,1,i+f+zu+pt+B+p+r+n+h+e,1,i+f+fc+pt+B+p+r+n+h+e,1,i+f+Hy+pt+B+p+r+n+h+e,1,i+f+" +lon_0=-159"+pt+B+p+r+n+h+e,1,i+f+yk+pt+B+p+r+n+h+e,1,i+f+dg+pt+B+p+r+n+h+e,1,i+f+" +lon_0=-141"+pt+B+p+r+n+h+e,1,i+f+_k+pt+B+p+r+n+h+e,1,i+f+Ek+pt+B+p+r+n+h+e,1,i+f+" +lon_0=-123"+pt+B+p+r+n+h+e,1,i+f+pc+pt+B+p+r+n+h+e,1,i+f+Zu+pt+B+p+r+n+h+e,1,i+f+" +lon_0=-105"+pt+B+p+r+n+h+e,1,i+f+Va+" +k=1"+Kc+p+d+zt+o+e,3,l+cs+fs+ds+Ho+R+Ka+r+n+o+e,1,i+f+Iv+pt+B+p+r+n+h+e,1,i+f+Wc+pt+B+p+r+n+h+e,16,l+jr+Nr+X+_i+A+p+S+h+e,1,l+Pr+Lr+Ke+np+A+vm+S+h+e,1,l+bo+wo+ht+pn+E+p+r+n+h+e,5,l+" +lat_1=-18"+MS+" +lat_0=-27"+xl+Z+p+v+o+e,1,c+r+n+e,4,u+za+r+n+o+e,3,c+r+n+e,1,u+lu+G+r+n+o+e,4,c+_+jp+e,8,c+r+n+e,1,u+bd+r+n+o+e,1,u+wd+r+n+o+e,1,u+xd+r+n+o+e,1,u+Sd+r+n+o+e,1,u+Zf+r+n+o+e,1,u+Wf+r+n+o+e,1,c+r+e,1,i+f+na+" +k=1"+aa+p+r+o+e,1,i+f+ra+" +k=1"+Bs+p+r+o+e,1,i+f+ga+" +k=1"+Ia+p+r+o+e,1,i+f+ia+" +k=1"+Ra+p+r+o+e,1,i+f+oa+" +k=1"+Ol+p+r+o+e,1,i+f+oi+" +k=1"+Pa+p+r+o+e,1,i+f+Go+" +k=1"+La+p+r+o+e,1,i+f+To+" +k=1"+la+p+r+o+e,1,i+f+Ro+" +k=1"+ja+p+r+o+e,1,i+f+wi+" +k=1"+ua+p+r+o+e,1,i+f+Oo+" +k=1"+Na+p+r+o+e,1,i+f+na+" +k=1"+m+p+r+o+e,1,i+f+ra+" +k=1"+m+p+r+o+e,1,i+f+ga+" +k=1"+m+p+r+o+e,1,i+f+ia+" +k=1"+m+p+r+o+e,1,i+f+oa+" +k=1"+m+p+r+o+e,1,i+f+oi+" +k=1"+m+p+r+o+e,1,i+f+Go+" +k=1"+m+p+r+o+e,1,i+f+To+" +k=1"+m+p+r+o+e,1,i+f+Ro+" +k=1"+m+p+r+o+e,1,i+f+wi+" +k=1"+m+p+r+o+e,1,i+f+Oo+" +k=1"+m+p+r+o+e,1,i+f+na+" +k=1"+Ba+p+r+o+e,1,i+f+Sc+" +k=1"+Da+p+r+o+e,1,i+f+ra+" +k=1"+Fa+p+r+o+e,1,i+f+hd+" +k=1"+Ua+p+r+o+e,1,i+f+ga+" +k=1"+Ds+p+r+o+e,1,i+f+Ta+" +k=1"+il+p+r+o+e,1,i+f+ia+" +k=1"+ys+p+r+o+e,1,i+f+df+" +k=1"+ol+p+r+o+e,1,i+f+oa+" +k=1"+Pl+p+r+o+e,1,i+f+_u+" +k=1"+Sf+p+r+o+e,1,i+f+oi+" +k=1"+Mf+p+r+o+e,1,i+f+uc+" +k=1"+Af+p+r+o+e,1,i+f+Go+" +k=1"+Ef+p+r+o+e,1,i+f+kl+" +k=1"+Cf+p+r+o+e,1,i+f+To+" +k=1"+Tf+p+r+o+e,1,i+f+Uu+" +k=1"+Of+p+r+o+e,1,i+f+Ro+" +k=1"+Pf+p+r+o+e,1,i+f+vu+" +k=1"+ap+p+r+o+e,1,i+f+wi+" +k=1"+Lf+p+r+o+e,1,i+f+xl+" +k=1"+lp+p+r+o+e,1,i+f+Oo+" +k=1"+If+p+r+o+e,1,i+f+na+" +k=1"+m+p+r+o+e,1,i+f+Sc+" +k=1"+m+p+r+o+e,1,i+f+ra+" +k=1"+m+p+r+o+e,1,i+f+hd+" +k=1"+m+p+r+o+e,1,i+f+ga+" +k=1"+m+p+r+o+e,1,i+f+Ta+" +k=1"+m+p+r+o+e,1,i+f+ia+" +k=1"+m+p+r+o+e,1,i+f+df+" +k=1"+m+p+r+o+e,1,i+f+oa+" +k=1"+m+p+r+o+e,1,i+f+_u+" +k=1"+m+p+r+o+e,1,i+f+oi+" +k=1"+m+p+r+o+e,1,i+f+uc+" +k=1"+m+p+r+o+e,1,i+f+Go+" +k=1"+m+p+r+o+e,1,i+f+kl+" +k=1"+m+p+r+o+e,1,i+f+To+" +k=1"+m+p+r+o+e,1,i+f+Uu+" +k=1"+m+p+r+o+e,1,i+f+Ro+" +k=1"+m+p+r+o+e,1,i+f+vu+" +k=1"+m+p+r+o+e,1,i+f+wi+" +k=1"+m+p+r+o+e,1,i+f+xl+" +k=1"+m+p+r+o+e,1,i+f+Oo+" +k=1"+m+p+r+o+e,1,c+d+e,3,c+r+n+e,1,u+Us+r+n+o+e,9,i+f+na+" +k=1"+aa+p+d+o+e,1,i+f+ra+" +k=1"+Bs+p+d+o+e,1,i+f+ga+" +k=1"+Ia+p+d+o+e,1,i+f+ia+" +k=1"+Ra+p+d+o+e,1,i+f+oa+" +k=1"+Ol+p+d+o+e,1,i+f+oi+" +k=1"+Pa+p+d+o+e,1,i+f+Go+" +k=1"+La+p+d+o+e,1,i+f+To+" +k=1"+la+p+d+o+e,1,i+f+Ro+" +k=1"+ja+p+d+o+e,1,i+f+wi+" +k=1"+ua+p+d+o+e,1,i+f+Oo+" +k=1"+Na+p+d+o+e,1,i+f+na+" +k=1"+m+p+d+o+e,1,i+f+ra+" +k=1"+m+p+d+o+e,1,i+f+ga+" +k=1"+m+p+d+o+e,1,i+f+ia+" +k=1"+m+p+d+o+e,1,i+f+oa+" +k=1"+m+p+d+o+e,1,i+f+oi+" +k=1"+m+p+d+o+e,1,i+f+Go+" +k=1"+m+p+d+o+e,1,i+f+To+" +k=1"+m+p+d+o+e,1,i+f+Ro+" +k=1"+m+p+d+o+e,1,i+f+wi+" +k=1"+m+p+d+o+e,1,i+f+Oo+" +k=1"+m+p+d+o+e,11,c+T+e,1,c+T+A_+e,1,c+T+E_+e,1,c+T+C_+e,1,c+T+T_+e,1,c+T+yv+e,1,c+T+d_+e,1,c+T+gm+e,1,c+j+e,1,c+j+e,1,c+Ht+O+e,1,c+_+mu+e,1,c+r+n+e,1,c+M+_a+e,1,c+_+Iu+e,1,c+_+Sy+e,1,c+_+y_+e,1,c+r+n+e,1,c+Y+Nt+e,1,c+r+n+e,1,c+T+" +towgs84=-106,-129,165,0,0,0,0"+e,1,c+_+__+e,1,c+_+My+e,1,c+_+Bf+e,1,c+r+n+e,1,c+_+L_+e,1,c+_+Ty+e,1,c+r+n+e,1,c+_+I_+e,1,c+_+xc+e,1,c+_+vv+e,2,c+_+Ay+e,1,c+_+Nm+e,3,c+_+" +towgs84=365,194,166,0,0,0,0"+e,1,c+_+" +towgs84=325,154,172,0,0,0,0"+e,1,c+j+H_+e,1,c+_+Ey+e,2,c+_+pu+e,1,c+_+v_+e,1,c+_+ch+e,1,c+_+Qs+e,2,c+_+Cy+e,1,i+f+Nu+pt+ol+p+r+n+o+e,5,i+f+na+" +k=1"+Ba+p+d+o+e,1,i+f+Sc+" +k=1"+Da+p+d+o+e,1,i+f+ra+" +k=1"+Fa+p+d+o+e,1,i+f+hd+" +k=1"+Ua+p+d+o+e,1,i+f+ga+" +k=1"+Ds+p+d+o+e,1,c+" +a=6377019.27 +b=6355762.5391 +towgs84=-28,199,5,0,0,0,0"+e,1,c+_+fu+e,1,c+r+n+e,1,c+_+Ru+e,1,c+r+n+e,1,c+_+Jm+e,1,c+_+Rp+e,1,c+_+ym+e,1,c+_+Jp+e,1,c+M+$p+e,1,c+N+n+e,1,c+_+" +towgs84=-86,-98,-119,0,0,0,0"+e,1,c+r+n+e,1,c+N+n+e,1,c+vt+he+e,1,c+_+B_+e,1,c+_+yd+e,1,c+r+n+e,1,c+j+" +towgs84=-100,-248,259,0,0,0,0"+e,1,c+d+e,1,c+d+e,1,c+d+" +towgs84=44.585,-131.212,-39.544,0,0,0,0"+e,1,c+T+" +towgs84=-80.01,253.26,291.19,0,0,0,0"+e,1,c+T+" +towgs84=124.5,-63.5,-281,0,0,0,0"+e,2,c+Ve+Kt+Eg+e,1,c+j+be+e,1,c+_+" +towgs84=-133,-321,50,0,0,0,0"+e,2,c+r+n+e,1,c+r+je+e,1,c+_+uh+e,1,c+_+wc+e,1,c+_+dh+e,1,c+_+ph+e,1,c+_+Bm+e,1,c+N+w_+e,1,c+N+n+e,1,c+j+_n+e,1,c+T+e,1,c+T+e,1,c+_+x_+e,1,c+T+eg+e,1,c+T+e,1,c+T+ns+e,1,c+r+n+e,1,c+T+e,1,c+_+e,1,c+_+e,1,c+Cs+ng+e,1,c+_+" +towgs84=114,-116,-333,0,0,0,0"+e,1,c+Y+" +towgs84=-491,-22,435,0,0,0,0"+e,1,c+_+" +towgs84=145,75,-272,0,0,0,0"+e,1,c+_+" +towgs84=-320,550,-494,0,0,0,0"+e,1,c+_+" +towgs84=124,-234,-25,0,0,0,0"+e,1,c+_+" +towgs84=-205,107,53,0,0,0,0"+e,1,c+T+" +towgs84=-79,-129,145,0,0,0,0"+e,1,c+_+" +towgs84=-127,-769,472,0,0,0,0"+e,1,c+_+" +towgs84=-104,-129,239,0,0,0,0"+e,1,c+_+" +towgs84=298,-304,-375,0,0,0,0"+e,1,c+j+" +towgs84=-2,151,181,0,0,0,0"+e,1,c+_+" +towgs84=230,-199,-752,0,0,0,0"+e,1,c+_+" +towgs84=211,147,111,0,0,0,0"+e,1,c+b+g+e,1,c+_+Ul+e,1,c+_+" +towgs84=-794,119,-298,0,0,0,0"+e,1,c+j+cc+e,1,c+_+" +towgs84=208,-435,-229,0,0,0,0"+e,1,c+_+" +towgs84=189,-79,-202,0,0,0,0"+e,1,c+j+Tc+e,1,c+_+" +towgs84=403,-81,277,0,0,0,0"+e,1,c+_+" +towgs84=-307,-92,127,0,0,0,0"+e,1,c+_+q_+e,1,c+_+" +towgs84=170,42,84,0,0,0,0"+e,2,c+" +a=6378270 +b=6356794.343434343 +towgs84=102,52,-38,0,0,0,0"+e,1,c+_+" +towgs84=276,-57,149,0,0,0,0"+e,1,c+_+" +towgs84=-632,438,-609,0,0,0,0"+e,1,c+_+" +towgs84=647,1777,-1124,0,0,0,0"+e,1,c+T+" +towgs84=260,12,-147,0,0,0,0"+e,1,c+r+n+e,1,c+xi+ki+e,1,c+_+" +towgs84=-156,-271,-189,0,0,0,0"+e,1,c+" +a=6378136 +b=6356751.361745712 +towgs84=0,0,1.5,-0,-0,0.076,0"+e,1,c+_+e,1,c+r+e,1,c+T+fi+e,1,c+T+e,1,c+M+e,1,c+M+e,1,c+r+n+e,1,c+Dv+Wk+dd+e,1,c+r+n+e,1,c+N+Mm+e,1,c+Vk+wg+e,1,c+Dv+Wk+dd+e,1,c+_+e,1,c+_+K+e,1,c+N+n+e,1,c+N+Bo+e,1,c+N+e,1,c+N+n+e,1,c+r+n+e,1,c+dM+e,1,c+r+n+e,1,c+N+n+e,1,c+N+n+e,1,c+r+n+e,1,c+r+n+e,1,i+f+Ta+" +k=1"+il+p+d+o+e,1,i+f+ia+" +k=1"+ys+p+d+o+e,1,i+f+df+" +k=1"+ol+p+d+o+e,1,i+f+oa+" +k=1"+Pl+p+d+o+e,1,i+f+_u+" +k=1"+Sf+p+d+o+e,1,i+f+oi+" +k=1"+Mf+p+d+o+e,1,i+f+uc+" +k=1"+Af+p+d+o+e,1,i+f+Go+" +k=1"+Ef+p+d+o+e,1,i+f+kl+" +k=1"+Cf+p+d+o+e,1,i+f+To+" +k=1"+Tf+p+d+o+e,1,i+f+Uu+" +k=1"+Of+p+d+o+e,1,i+f+Ro+" +k=1"+Pf+p+d+o+e,1,i+f+vu+" +k=1"+ap+p+d+o+e,1,i+f+wi+" +k=1"+Lf+p+d+o+e,1,i+f+xl+" +k=1"+lp+p+d+o+e,1,i+f+Oo+" +k=1"+If+p+d+o+e,1,i+f+na+" +k=1"+m+p+d+o+e,1,i+f+Sc+" +k=1"+m+p+d+o+e,1,i+f+ra+" +k=1"+m+p+d+o+e,1,i+f+hd+" +k=1"+m+p+d+o+e,1,i+f+ga+" +k=1"+m+p+d+o+e,1,i+f+Ta+" +k=1"+m+p+d+o+e,1,i+f+ia+" +k=1"+m+p+d+o+e,1,i+f+df+" +k=1"+m+p+d+o+e,1,i+f+oa+" +k=1"+m+p+d+o+e,1,i+f+_u+" +k=1"+m+p+d+o+e,1,i+f+oi+" +k=1"+m+p+d+o+e,1,i+f+uc+" +k=1"+m+p+d+o+e,1,i+f+Go+" +k=1"+m+p+d+o+e,1,i+f+kl+" +k=1"+m+p+d+o+e,1,i+f+To+" +k=1"+m+p+d+o+e,1,i+f+Uu+" +k=1"+m+p+d+o+e,1,i+f+Ro+" +k=1"+m+p+d+o+e,1,i+f+vu+" +k=1"+m+p+d+o+e,1,i+f+wi+" +k=1"+m+p+d+o+e,1,c+M+bs+" +pm=bern"+e,1,c+_+hi+" +pm=bogota"+e,1,c+_+di+IS+e,1,c+M+fa+Qp+e,1,c+M+Vt+kc+e,1,c+_+sn+" +pm=rome"+e,1,c+vt+he+Ie+Ac+e,1,c+M+Qp+e,1,c+_+" +pm=brussels"+e,1,c+_+qs+Ac+e,1,c+vt+he+Fl+Ac+e,1,i+f+xl+" +k=1"+m+p+d+o+e,0,i+f+xl+" +k=1"+m+p+d+o+e,1,c+M+Pn+Qp+e,1,c+M+" +pm=stockholm"+e,1,c+M+" +pm=athens"+e,1,c+vt+he+ks+Ac+e,1,c+Aa+ri+Mt+Iy+e,1,c+M+xs+kc+e,2,c+M+_a+Qp+e,1,c+vt+he+Ac+e,1,i+f+Oo+" +k=1"+m+p+d+o+e,1,c+_+e,1,c+_+e,2,l+" +lat_1=15 +lat_2=16.66666666666667 +lat_0=15.83333333333333 +lon_0=-24 +x_0=161587.83 +y_0=128511.202"+v+o+e,13,l+xw+kw+Av+mk+Z+p+r+n+o+e,62,c+" +a=6376523"+xg+_S+e,2,c+eM+bg+" +pm=madrid"+e,1,c+M+$p+IS+e,109,c+r+n+e,1,u+vd+r+n+o+e,1,u+_p+r+n+o+e,1,u+uu+r+n+o+e,2,i+we+Gv+" +k=1"+Z+p+_+di+o+e,23,fe+Oa+lg+ta+Xg+Ae+In+v+o+e,1,fe+F+" +lat_ts=-90"+ta+Xg+Ae+In+v+o+e,6,u+mh+r+n+o+e,21,dr+Wy+Sa+aS+$d+Z+p+S+o+e,1,dr+Wy+Sa+aS+$d+Z+p+r+n+o+e,1,dr+Wy+Sa+aS+$d+Z+p+r+n+o+e,1,dr+Wy+Sa+aS+$d+Z+p+r+n+o+e,33,i+Eo+" +lon_0=5.5 +k=1"+ye+st+r+n+o+e,1,i+Eo+" +lon_0=6.5 +k=1"+ye+st+r+n+o+e,1,i+Eo+" +lon_0=7.5 +k=1"+ye+st+r+n+o+e,1,i+Eo+" +lon_0=8.5 +k=1"+ye+st+r+n+o+e,1,i+Eo+" +lon_0=9.5 +k=1"+ye+st+r+n+o+e,1,i+Eo+mk+" +k=1"+ye+st+r+n+o+e,1,i+Eo+" +lon_0=11.5 +k=1"+ye+st+r+n+o+e,1,i+Eo+" +lon_0=12.5 +k=1"+ye+st+r+n+o+e,1,i+Eo+" +lon_0=13.5 +k=1"+ye+st+r+n+o+e,1,i+Eo+" +lon_0=14.5 +k=1"+ye+st+r+n+o+e,1,i+Eo+" +lon_0=15.5 +k=1"+ye+st+r+n+o+e,1,i+Eo+fk+" +k=1"+ye+st+r+n+o+e,1,i+Eo+" +lon_0=17.5 +k=1"+ye+st+r+n+o+e,1,i+Eo+" +lon_0=18.5 +k=1"+ye+st+r+n+o+e,1,i+Eo+" +lon_0=19.5 +k=1"+ye+st+r+n+o+e,1,i+Eo+" +lon_0=20.5 +k=1"+ye+st+r+n+o+e,1,i+Eo+" +lon_0=21.5 +k=1"+ye+st+r+n+o+e,1,i+Eo+" +lon_0=22.5 +k=1"+ye+st+r+n+o+e,1,i+Eo+" +lon_0=23.5 +k=1"+ye+st+r+n+o+e,1,i+Eo+" +lon_0=24.5 +k=1"+ye+st+r+n+o+e,1,i+Eo+" +lon_0=25.5 +k=1"+ye+st+r+n+o+e,1,i+Eo+" +lon_0=26.5 +k=1"+ye+st+r+n+o+e,1,i+Eo+" +lon_0=27.5 +k=1"+ye+st+r+n+o+e,1,i+Eo+" +lon_0=28.5 +k=1"+ye+st+r+n+o+e,1,i+Eo+" +lon_0=29.5 +k=1"+ye+st+r+n+o+e,1,i+Eo+" +lon_0=30.5 +k=1"+ye+st+r+n+o+e,2,c+M+e,35,i+Tn+$f+" +k=1"+R+Tt+M+o+e,1,i+Tn+dy+" +k=1"+R+" +y_0=550000"+M+o+e,1,i+Tn+py+" +k=1"+R+Tt+M+o+e,1,i+Tn+dy+" +k=1"+R+Tt+M+o+e,1,i+Tn+wi+" +k=1"+R+Tt+M+o+e,1,i+Tn+$f+" +k=1"+R+Tt+M+o+e,1,i+Tn+" +lon_0=125.0028902777778 +k=1"+R+Tt+M+o+e,1,i+Tn+Sw+" +k=1"+R+Tt+M+o+e,1,i+Tn+Sw+" +k=1"+R+" +y_0=550000"+M+o+e,1,i+Tn+" +lon_0=129.0028902777778 +k=1"+R+Tt+M+o+e,1,i+Tn+" +lon_0=131.0028902777778 +k=1"+R+Tt+M+o+e,1,i+Tn+am+pt+xe+In+M+o+e,1,i+Tn+am+pt+xe+In+r+n+o+e,1,i+Tn+py+" +k=1"+R+Tt+r+n+o+e,1,i+Tn+dy+" +k=1"+R+Tt+r+n+o+e,1,i+Tn+dy+" +k=1"+R+" +y_0=550000"+r+n+o+e,1,i+Tn+wi+" +k=1"+R+Tt+r+n+o+e,1,i+Tn+$f+" +k=1"+R+Tt+r+n+o+e,1,i+Tn+py+" +k=1"+R+ug+r+n+o+e,1,i+Tn+dy+" +k=1"+R+ug+r+n+o+e,1,i+Tn+wi+" +k=1"+R+ug+r+n+o+e,1,i+Tn+$f+" +k=1"+R+ug+r+n+o+e,33,uy+Dy+" +lon_0=42.5"+yh+x+Z+p+M+xs+kc+o+e,2,i+f+Wa+pt+m+Tt+v+o+e,5,c+M+Oc+e,1,c+M+Oc+kc+e,4,c+Ve+Kt+fh+e,1,i+" +lat_0=7.000480277777778 +lon_0=80.77171111111112 +k=0.9999238418"+R+Ka+Ve+Kt+Z_+o+e,1,i+" +lat_0=7.000471527777778 +lon_0=80.77171308333334 +k=0.9999238418"+m+Tt+Ve+Kt+fh+o+e,8,l+xw+kw+Av+mk+Z+p+r+n+o+e,3,c+r+e,1,gn+ig+oS+SM+om+Z+p+Fu+gl+r+o+e,5,c+r+n+e,1,i+f+ea+" +k=1"+m+p+r+n+o+e,1,i+f+cl+" +k=1"+m+p+r+n+o+e,1,i+f+Za+" +k=1"+m+p+r+n+o+e,1,i+f+Fp+" +k=1"+m+p+r+n+o+e,1,i+f+Wh+" +k=1"+m+p+r+n+o+e,1,i+f+Up+" +k=1"+m+p+r+n+o+e,1,i+f+eu+" +k=1"+m+p+r+n+o+e,5,c+r+n+e,2,i+f+Ta+" +k=1"+qe+p+r+n+o+e,3,i+f+ea+" +k=1"+Yc+p+r+n+o+e,1,i+f+cl+" +k=1"+rc+p+r+n+o+e,1,i+f+Za+" +k=1"+Su+p+r+n+o+e,1,i+f+Fp+" +k=1"+ic+p+r+n+o+e,1,i+f+Wh+" +k=1"+aa+p+r+n+o+e,1,i+f+Up+" +k=1"+Bs+p+r+n+o+e,1,i+f+eu+" +k=1"+Ia+p+r+n+o+e,17,i+f+" +lon_0=90.73333333333333 +k=1"+qe+pr+r+n+o+e,1,i+f+" +lon_0=89.55 +k=1"+qe+pr+r+n+o+e,1,i+f+Mw+" +k=1"+qe+pr+r+n+o+e,1,i+f+" +lon_0=90.03333333333333 +k=1"+qe+pr+r+n+o+e,1,i+f+" +lon_0=90.15000000000001 +k=1"+qe+pr+r+n+o+e,1,i+f+" +lon_0=91.13333333333334 +k=1"+qe+pr+r+n+o+e,1,i+f+" +lon_0=91.23333333333333 +k=1"+qe+pr+r+n+o+e,1,i+f+" +lon_0=89.34999999999999 +k=1"+qe+pr+r+n+o+e,1,i+f+" +lon_0=91.34999999999999 +k=1"+qe+pr+r+n+o+e,1,i+f+Mw+" +k=1"+qe+pr+r+n+o+e,1,i+f+Aw+" +k=1"+qe+pr+r+n+o+e,1,i+f+" +lon_0=89.06666666666666 +k=1"+qe+pr+r+n+o+e,1,i+f+" +lon_0=90.26666666666667 +k=1"+qe+pr+r+n+o+e,1,i+f+" +lon_0=89.55 +k=1"+qe+pr+r+n+o+e,1,i+f+" +lon_0=91.75 +k=1"+qe+pr+r+n+o+e,1,i+f+" +lon_0=90.5 +k=1"+qe+pr+r+n+o+e,1,i+f+" +lon_0=90.16666666666667 +k=1"+qe+pr+r+n+o+e,1,i+f+" +lon_0=90.11666666666666 +k=1"+qe+pr+r+n+o+e,1,i+f+Aw+" +k=1"+qe+pr+r+n+o+e,1,i+f+" +lon_0=90.86666666666666 +k=1"+qe+pr+r+n+o+e,5,i+f+" +lon_0=-7 +k=0.999997"+R+" +y_0=-6000000"+r+n+o+e,4,l+gk+" +lat_2=54.5"+f+Xf+xe+p+r+n+o+e,1,l+gk+" +lat_2=54.5"+f+Xf+xe+p+r+n+o+e,3,c+r+n+e,1,l+" +lat_1=64.25 +lat_2=65.75 +lat_0=65 +lon_0=-19"+Ou+ka+r+n+o+e,4,ru+Cp+wS+um+cg+M+_a+Qp+o+e,1,ru+Cp+wS+um+cg+M+Pn+Qp+o+e,1,ru+Cp+wS+um+cg+M+fa+Qp+o+e,6,u+vd+G+_+bi+o+e,3,c+r+n+e,3,i+F+Lv+" +k=1"+bt+p+r+n+o+e,1,i+F+Wc+" +k=1"+On+p+r+n+o+e,1,i+F+nm+" +k=1"+Be+p+r+n+o+e,1,i+F+sg+" +k=1"+ur+p+r+n+o+e,1,i+F+Rv+" +k=1"+Si+p+r+n+o+e,1,i+F+RS+" +k=1"+Cu+p+r+n+o+e,1,i+F+rd+" +k=1"+Xa+p+r+n+o+e,5,c+r+n+e,1,u+Us+G+r+n+o+e,1,u+wa+G+r+n+o+e,1,u+za+G+r+n+o+e,3,c+r+n+e,1,u+wa+G+r+n+o+e,1,u+Ga+G+r+n+o+e,3,c+N+n+e,2,i+f+Xf+x+m+p+N+n+o+e,4,c+r+n+e,2,c+r+n+e,8,c+N+n+e,1,u+za+G+N+n+o+e,1,u+Ml+G+N+n+o+e,4,u+Ga+G+r+n+o+e,2,u+wa+G+r+n+o+e,4,c+r+n+e,3,u+_p+G+r+n+o+e,55,c+j+De+e,5,l+" +lat_1=10.46666666666667 +lat_0=10.46666666666667 +lon_0=-84.33333333333333 +k_0=0.99995696"+m+" +y_0=271820.522"+j+De+o+e,1,l+" +lat_1=9 +lat_0=9"+zv+" +k_0=0.99995696"+m+" +y_0=327987.436"+j+De+o+e,2,l+" +lat_1=14.9 +lat_0=14.9"+We+" +k_0=0.99989906"+m+" +y_0=325992.681"+j+De+o+e,1,l+" +lat_1=13.78333333333333 +lat_0=13.78333333333333 +lon_0=-89 +k_0=0.99996704"+m+" +y_0=295809.184"+j+De+o+e,1,l+" +lat_1=13.86666666666667 +lat_0=13.86666666666667"+iv+" +k_0=0.99990314"+m+" +y_0=359891.816"+j+De+o+e,1,l+" +lat_1=11.73333333333333 +lat_0=11.73333333333333"+iv+" +k_0=0.9999222800000001"+m+" +y_0=288876.327"+j+De+o+e,1,u+wl+Y+Nt+o+e,1,c+xi+ki+e,3,c+j+e,2,l+" +lat_1=8.416666666666666 +lat_0=8.416666666666666 +lon_0=-80 +k_0=0.99989909"+m+" +y_0=294865.303"+j+o+e,3,Nv+" +lat_0=8.25"+dn+" +x_0=914391.7962 +y_0=999404.7217154861"+j+" +to_meter=0.9143917962"+e,7,l+It+Rt+" +lat_0=-78 +lon_0=163"+ov+Tu+r+n+o+e,1,l+" +lat_1=-73.66666666666667"+St+" +lat_0=-74.5"+ed+nc+Io+r+n+o+e,1,l+" +lat_1=-70.66666666666667 +lat_2=-72.33333333333333 +lat_0=-71.5"+CS+cM+st+r+n+o+e,1,fe+F+" +lat_ts=-90"+_y+Xg+nc+st+r+n+o+e,7,c+r+n+e,1,u+Us+r+n+o+e,23,uy+Dy+Ew+yh+x+Z+p+M+xs+o+e,1,uy+Dy+Ew+yh+x+Z+p+M+xs+o+e,4,i+LS+t_+" +k=1"+hg+" +y_0=650000"+_+B_+o+e,1,i+LS+t_+" +k=1"+hg+" +y_0=650000"+_+yd+o+e,1,i+f+yp+" +k=1"+bt+p+M+et+o+e,3,i+f+" +lon_0=11.5"+pt+bt+ii+v+o+e,1,c+_+e,3,c+Y+ae+e,3,Nv+f+rd+nc+jt+Y+ae+o+e,1,u+za+G+Y+ae+o+e,2,u+Lc+G+Y+ae+o+e,1,u+Md+G+Y+ae+o+e,1,u+vd+G+Y+ae+o+e,1,u+za+G+_+o+e,1,u+Ml+G+_+o+e,1,u+Lc+G+_+o+e,1,u+Md+G+_+o+e,7,c+r+n+e,4,u+kd+G+r+n+o+e,1,u+Dp+G+r+n+o+e,1,u+Jg+G+r+n+o+e,7,l+" +lat_1=16.81666666666667 +lat_0=16.81666666666667"+We+" +k_0=0.99992226"+m+" +y_0=292209.579"+j+De+o+e,2,c+d+ce+e,1,i+f+As+" +k=1"+ur+p+d+ce+o+e,1,i+f+ea+" +k=1"+Si+p+d+ce+o+e,1,i+f+Za+" +k=1"+Cu+p+d+ce+o+e,1,i+f+Wh+" +k=1"+Xa+p+d+ce+o+e,1,i+f+As+" +k=1"+m+p+d+ce+o+e,1,i+f+ea+" +k=1"+m+p+d+ce+o+e,1,i+f+Za+" +k=1"+m+p+d+ce+o+e,1,i+f+Wh+" +k=1"+m+p+d+ce+o+e,19,us+El+nM+Fy+At+" +y_0=304800"+S+W+e,1,i+" +lat_0=17.06124194444444 +lon_0=-88.6318575 +k=1 +x_0=66220.02833082761 +y_0=135779.5099885299"+xi+ki+zc+e,4,c+r+n+e,3,i+f+" +lon_0=11.33333333333333 +k=1"+xe+p+r+n+o+e,27,i+Po+zv+" +k=0.999942857"+P+p+S+h+e,1,i+Po+gi+Ma+P+p+S+h+e,1,i+Po+" +lon_0=-88.75"+Ma+P+p+S+h+e,2,i+f+bS+pt+m+p+_+U+o+e,2,u+lu+G+N+Ju+o+e,2,i+f+Nu+" +k=1"+On+p+d+C+o+e,1,l+nS+Qm+Wp+Mc+$h+zg+r+n+o+e,1,ya+Wp+Mc+Hg+qg+r+n+o+e,1,l+nS+Qm+Wp+Mc+$h+zg+r+n+o+e,1,ya+Wp+Mc+Hg+qg+r+n+o+e,1,ya+Wp+Mc+Hg+qg+r+n+o+e,1,l+nS+Qm+Wp+Mc+$h+zg+r+n+o+e,1,ya+Wp+Mc+Hg+qg+r+n+o+e,1,l+nS+Qm+Wp+Mc+$h+zg+r+n+o+e,2,ru+" +lon_0=-43 +lat_ts=-2"+nc+jt+r+n+o+e,2,l+" +lat_1=52.66666666666666 +lat_2=54.33333333333334 +lat_0=48"+Mc+" +x_0=815000"+p+_+U+o+e,1,u+Kl+G+r+n+o+e,2,i+Lo+ec+Bl+ot+p+r+n+h+e,3,i+f+yp+pt+ys+p+r+n+o+e,1,i+f+Ss+pt+Pl+p+r+n+o+e,1,i+f+yp+pt+ys+p+r+n+o+e,1,i+f+Nu+pt+ol+p+r+n+o+e,1,i+f+Ss+pt+Pl+p+r+n+o+e,1,i+Lo+ec+Bl+ot+p+r+n+h+e,1,i+Lo+ec+Bl+ot+p+r+n+h+e,4,i+f+Nu+pt+" +x_0=500053 +y_0=-3999820"+_+sn+o+e,4,i+f+Ss+" +k=1"+Be+p+d+C+o+e,1,i+f+Nu+" +k=1"+On+p+d+zt+o+e,1,i+f+Ss+" +k=1"+Be+p+d+zt+o+e,1,i+f+Nu+" +k=1"+Be+p+M+o+e,1,i+f+Wa+" +k=1"+ur+p+M+o+e,1,i+f+Wa+" +k=1"+ur+p+M+o+e,1,i+f+Ss+" +k=1"+Si+p+M+o+e,1,i+f+Nu+" +k=1"+Be+p+d+C+o+e,1,i+f+Wa+" +k=1"+ur+p+d+C+o+e,1,i+f+Ss+" +k=1"+Si+p+d+C+o+e,1,i+f+Nu+" +k=1"+Be+p+d+zt+o+e,1,i+f+Wa+" +k=1"+ur+p+d+zt+o+e,1,i+f+Ss+" +k=1"+Si+p+d+zt+o+e,1,i+f+bS+" +k=1"+On+p+M+et+o+e,1,i+f+Nu+" +k=1"+Be+p+M+et+o+e,1,i+f+Wa+" +k=1"+ur+p+M+et+o+e,1,i+f+Ss+" +k=1"+Si+p+M+et+o+e,1,i+f+yp+" +k=1"+bt+p+M+et+o+e,1,c+M+e,1,i+f+bS+" +k=1"+On+p+M+o+e,1,i+f+Nu+" +k=1"+Be+p+M+o+e,1,i+f+Wa+" +k=1"+ur+p+M+o+e,1,i+f+Ss+" +k=1"+Si+p+M+o+e,15,u+Oy+G+r+n+o+e,125,i+" +lat_0=-35.31773627777778 +lon_0=149.0092948305555 +k=1.000086"+R+ug+Y+q+o+e,11,u+Du+N+n+o+e,1,u+lf+N+n+o+e,2,u+wl+G+r+n+o+e,3,i+f+Wa+pt+m+jt+v+o+e,2,i+f+cl+x+m+jt+r+n+o+e,14,u+Ml+G+Y+ae+o+e,17,u+Ga+G+Y+ae+o+e,1,u+wa+G+Y+ae+o+e,1,u+Us+G+Y+ae+o+e,2,u+lu+G+_+jp+o+e,1,Nv+f+rd+nc+jt+r+n+o+e,6,c+r+e,1,i+f+zu+pt+bt+Tu+r+o+e,3,fe+Oa+" +lat_ts=70"+Ta+" +k=1"+Z+p+PS+ny+o+e,31,l+lS+Qa+_l+Zu+Z+p+v+o+e,1,l+lS+Qa+_l+jv+Z+p+v+o+e,1,l+lS+Qa+_l+Za+Z+p+v+o+e,1,l+lS+Qa+_l+oi+Z+p+v+o+e,1,l+lS+Qa+_l+Gu+Z+p+v+o+e,1,l+dl+uS+vl+Zu+Z+p+v+o+e,1,l+dl+uS+vl+jv+Z+p+v+o+e,1,l+dl+uS+vl+Za+Z+p+v+o+e,1,l+dl+uS+vl+oi+Z+p+v+o+e,1,l+dl+uS+vl+Gu+Z+p+v+o+e,1,l+hS+cS+bl+Zu+Z+p+v+o+e,1,l+hS+cS+bl+jv+Z+p+v+o+e,1,l+hS+cS+bl+Za+Z+p+v+o+e,1,l+hS+cS+bl+oi+Z+p+v+o+e,1,l+hS+cS+bl+Gu+Z+p+v+o+e,1,fe+Oa+lg+Gd+Xg+Ae+In+v+o+e,1,fe+Oa+lg+pn+Xg+Ae+In+v+o+e,1,fe+Oa+lg+" +lon_0=-33"+Xg+Ae+In+v+o+e,1,fe+Oa+lg+Gm+Xg+Ae+In+v+o+e,1,fe+Oa+lg+oi+Xg+Ae+In+v+o+e,110,l+Ev+da+pa+" +lon_0=-30"+Ba+hr+r+n+o+e,1,l+An+En+Cn+" +lon_0=-52"+Pa+ql+r+n+o+e,1,l+An+En+Cn+" +lon_0=-12"+la+ql+r+n+o+e,1,l+Ce+Qa+Te+Wc+Ds+Ja+r+n+o+e,1,l+Ce+Qa+Te+jv+ys+Ja+r+n+o+e,1,l+Ce+Qa+Te+" +lon_0=-10"+Pl+Ja+r+n+o+e,1,l+dl+le+ue+" +lon_0=-64"+la+gs+r+n+o+e,1,l+dl+le+ue+jv+ua+gs+r+n+o+e,1,l+dl+le+ue+" +lon_0=-14"+oc+gs+r+n+o+e,1,l+gt+yt+_t+Yf+Pf+ii+r+n+o+e,1,l+gt+yt+_t+" +lon_0=-42"+Lf+ii+r+n+o+e,1,l+gt+yt+_t+" +lon_0=-22"+If+ii+r+n+o+e,1,l+rn+Jd+on+jS+Da+Zl+r+n+o+e,1,l+rn+Jd+on+" +lon_0=-38"+Ua+Zl+r+n+o+e,1,l+rn+Jd+on+" +lon_0=-20"+il+Zl+r+n+o+e,1,l+" +lat_1=67"+Cw+Tw+" +lon_0=-51"+Su+lM+r+n+o+e,1,l+" +lat_1=67"+Cw+Tw+" +lon_0=-34"+aa+lM+r+n+o+e,1,l+Ow+Pw+Lw+" +lon_0=-52"+la+" +y_0=8500000"+r+n+o+e,1,l+Ow+Pw+Lw+" +lon_0=-37"+ua+" +y_0=8500000"+r+n+o+e,1,l+An+En+Cn+" +lon_0=16"+ua+ql+r+n+o+e,1,l+Ce+Qa+Te+As+Su+Ja+r+n+o+e,1,l+dl+le+ue+Mc+Da+gs+r+n+o+e,1,l+dl+le+ue+fS+Ua+gs+r+n+o+e,1,l+gt+yt+_t+" +lon_0=14"+Su+ii+r+n+o+e,1,l+gt+yt+_t+fS+aa+ii+r+n+o+e,1,l+An+En+Cn+" +lon_0=53"+oc+ql+v+o+e,1,l+An+En+Cn+ia+Da+ql+v+o+e,1,l+Ce+Qa+Te+" +lon_0=52"+aa+Ja+v+o+e,1,l+Ce+Qa+Te+" +lon_0=83"+Ia+Ja+v+o+e,1,l+Ce+Qa+Te+kl+Ol+Ja+v+o+e,1,l+Ce+Qa+Te+" +lon_0=145"+La+Ja+v+o+e,1,l+dl+le+ue+" +lon_0=58"+il+gs+v+o+e,1,l+dl+le+ue+" +lon_0=82"+ol+gs+v+o+e,1,l+dl+le+ue+xS+Sf+gs+v+o+e,1,l+dl+le+ue+" +lon_0=130"+Af+gs+v+o+e,1,l+dl+le+ue+kS+Cf+gs+v+o+e,1,l+dl+le+ue+" +lon_0=179"+Of+gs+v+o+e,1,l+gt+yt+_t+By+Ia+ii+v+o+e,1,l+gt+yt+_t+" +lon_0=74"+Ol+ii+v+o+e,1,l+gt+yt+_t+" +lon_0=95"+La+ii+v+o+e,1,l+gt+yt+_t+" +lon_0=116"+ja+ii+v+o+e,1,l+gt+yt+_t+" +lon_0=137"+Na+ii+v+o+e,1,l+gt+yt+_t+" +lon_0=158"+Ba+ii+v+o+e,1,l+gt+yt+_t+" +lon_0=179"+Fa+ii+v+o+e,1,l+gt+yt+_t+" +lon_0=-163"+Ds+ii+r+n+o+e,1,l+gt+yt+_t+dg+ys+ii+r+n+o+e,1,l+rn+Jd+on+Hy+Bs+Zl+r+n+o+e,1,l+rn+Jd+on+dg+Ra+Zl+r+n+o+e,1,l+Ev+da+pa+He+Na+hr+r+n+o+e,1,l+An+En+Cn+Zy+Bs+ql+r+n+o+e,1,l+An+En+Cn+Iv+Ra+ql+r+n+o+e,1,l+Ce+Qa+Te+Ek+Ba+Ja+r+n+o+e,1,l+Ce+Qa+Te+yu+Fa+Ja+r+n+o+e,1,l+Ce+Qa+Te+Wc+Ds+Ja+r+n+o+e,1,l+dl+le+ue+Ek+Bs+gs+r+n+o+e,1,l+dl+le+ue+" +lon_0=-104"+Ra+gs+r+n+o+e,1,l+dl+le+ue+Jf+Pa+gs+r+n+o+e,1,l+gt+yt+_t+" +lon_0=-131"+Pl+ii+r+n+o+e,1,l+gt+yt+_t+Zu+Mf+ii+r+n+o+e,1,l+gt+yt+_t+" +lon_0=-91"+Ef+ii+r+n+o+e,1,l+gt+yt+_t+" +lon_0=-71"+Tf+ii+r+n+o+e,1,l+rn+Jd+on+" +lon_0=-132"+Pa+Zl+r+n+o+e,1,l+rn+Jd+on+" +lon_0=-113"+la+Zl+r+n+o+e,1,l+rn+Jd+on+nd+ua+Zl+r+n+o+e,1,l+rn+Jd+on+Iv+oc+Zl+r+n+o+e,1,l+Ev+da+pa+cl+Fa+hr+v+o+e,1,l+Ev+da+pa+Ta+Ds+hr+v+o+e,1,l+Ev+da+pa+ip+ys+hr+v+o+e,1,l+Ev+da+pa+Gd+ja+hr+v+o+e,1,l+An+En+Cn+" +lon_0=133"+Ua+ql+v+o+e,1,l+An+En+Cn+CS+rc+ql+v+o+e,1,l+An+En+Cn+xf+ic+ql+v+o+e,1,l+Ce+Qa+Te+" +lon_0=176"+ja+Ja+v+o+e,1,l+Ce+Qa+Te+yk+Na+Ja+v+o+e,1,l+dl+le+ue+" +lon_0=-155"+ic+gs+v+o+e,1,l+gt+yt+_t+" +lon_0=-5"+gS+ii+r+n+o+e,3,u+wl+j+cc+W+e,1,u+wl+j+Tc+W+e,6,c+r+n+e,69,i+f+As+x+m+p+M+Vt+o+e,3,c+Ve+Kt+" +towgs84=293.17,726.18,245.36,0,0,0,0"+e,3,u+Lc+r+n+o+e,1,u+Md+r+n+o+e,96,l+cs+fs+ds+Ho+R+Ka+r+o+e,4,c+N+hh+e,1,i+f+Za+cn+R+" +y_0=-3500000"+N+hh+o+e,4,i+f+As+x+Xa+p+M+Vt+o+e,2,c+r+e,4,c+r+e,3,c+r+e,3,u+_d+r+o+e,1,u+Bp+r+o+e,1,u+Oy+r+o+e,1,u+F_+r+o+e,1,u+ak+r+o+e,1,u+z_+r+o+e,1,u+Cg+r+o+e,1,u+ly+r+o+e,1,u+Tg+r+o+e,1,u+U_+r+o+e,1,u+G_+r+o+e,1,u+Cm+r+o+e,1,u+bd+r+o+e,1,u+wd+r+o+e,1,u+xd+r+o+e,1,u+Sd+r+o+e,1,u+Zf+r+o+e,1,u+Wf+r+o+e,1,u+wl+r+o+e,1,u+Ga+r+o+e,1,u+wa+r+o+e,2,dr+Wy+Sa+aS+$d+Z+p+r+o+e,1,l+gt+yt+_t+" +lon_0=-163"+Ds+ii+r+o+e,1,l+gt+yt+_t+dg+ys+ii+r+o+e,1,l+rn+Jd+on+Hy+Bs+Zl+r+o+e,1,l+rn+Jd+on+dg+Ra+Zl+r+o+e,1,i+ul+sl+tm+R+p+r+o+e,1,i+Es+Wd+re+E+p+r+o+e,6,l+" +lat_1=17.5 +lat_2=29.5 +lat_0=12 +lon_0=-102"+On+p+r+n+o+e,3,c+r+n+e,1,u+bd+r+n+o+e,1,u+wd+r+n+o+e,1,u+xd+r+n+o+e,1,u+Sd+r+n+o+e,1,u+Zf+r+n+o+e,1,u+Wf+r+n+o+e,1,l+" +lat_1=17.5 +lat_2=29.5 +lat_0=12 +lon_0=-102"+On+p+r+n+o+e,9,i+f+As+" +k=1"+at+p+d+Xe+o+e,1,i+f+Va+" +k=1"+at+p+d+Xe+o+e,1,i+f+ea+" +k=1"+at+p+d+Xe+o+e,1,i+f+cl+" +k=1"+at+p+d+Xe+o+e,1,i+f+Za+" +k=1"+at+p+d+Xe+o+e,1,i+f+Fp+" +k=1"+at+p+d+Xe+o+e,1,i+f+Wh+" +k=1"+at+p+d+Xe+o+e,4,l+" +lat_1=19.33333333333333 +lat_2=19.7 +lat_0=19.33333333333333 +lon_0=-80.56666666666666 +x_0=899160 +y_0=579120"+r+n+W+e,2,dr+" +lat_1=55"+Qm+tS+xf+Z+p+r+o+e,1,gn+" +lat_0=57"+Eh+Ch+x+nc+si+Fu+ps+r+o+e,1,i+No+wk+x+m+p+r+o+e,1,i+No+xk+x+m+p+r+o+e,1,i+No+Gd+x+m+p+r+o+e,1,i+No+xf+x+m+p+r+o+e,1,i+No+Hu+x+m+p+r+o+e,1,i+No+kk+x+m+p+r+o+e,1,i+No+Sk+x+m+p+r+o+e,1,i+No+zy+x+m+p+r+o+e,1,l+Th+Oh+Av+Mk+xe+p+r+o+e,1,i+Re+Nn+x+mi+p+r+o+e,1,i+Re+Nn+x+mi+p+r+W+e,1,i+Re+jn+x+mi+p+r+o+e,1,i+Re+jn+x+mi+p+r+W+e,1,i+Re+Ll+re+mi+p+r+o+e,1,i+Re+Ll+re+mi+p+r+W+e,1,l+Hr+qr+$t+qa+V+p+r+o+e,1,l+Hr+qr+$t+qa+Zt+p+r+h+e,1,l+Zr+bf+Wr+qa+V+Tl+r+o+e,1,l+Zr+bf+Wr+qa+Zt+Rs+r+h+e,1,dr+iS+qy+f+kf+Z+Km+r+o+e,1,l+gr+xu+X+Gs+Ae+Tt+r+o+e,1,l+gr+xu+X+Gs+Et+nt+r+h+e,1,l+yr+_r+$+Gs+Ae+Tt+r+o+e,1,l+yr+_r+$+Gs+Et+nt+r+h+e,1,l+Ut+vr+mf+lt+Ae+Tt+r+o+e,1,l+Ut+vr+mf+lt+Et+nt+r+h+e,1,l+Vh+zm+br+gf+Ae+Tt+r+o+e,1,l+Vh+zm+br+gf+Et+nt+r+h+e,1,l+wr+xr+yf+Cl+Ae+Tt+r+o+e,1,l+wr+xr+yf+Cl+Et+nt+r+h+e,1,l+kr+Sr+Mr+Il+Ae+Tt+r+o+e,1,l+kr+Sr+Mr+Il+Et+nt+r+h+e,1,l+Qh+Kh+bn+ke+Fo+Uo+r+o+e,1,l+Qh+Kh+bn+ke+Ze+an+r+h+e,1,l+Mi+Ai+X+ke+Fo+Uo+r+o+e,1,l+Mi+Ai+X+ke+Ze+an+r+h+e,1,l+Ut+Ar+L+ke+Fo+Uo+r+o+e,1,l+Ut+Ar+L+ke+Ze+an+r+h+e,1,l+Er+_f+Cr+Mu+Om+Pm+r+o+e,1,l+Er+_f+Cr+Mu+Ic+Rc+r+h+e,1,i+Tn+Bn+vf+R+p+r+o+e,1,i+Tn+Bn+vf+rt+p+r+h+e,1,i+Gt+dn+Bt+R+p+r+o+e,1,i+Gt+dn+Bt+rt+p+r+h+e,1,dr+" +lat_1=24"+pk+" +lat_0=24"+Xf+V+p+r+o+e,1,l+Yh+Tr+Hm+Xh+E+p+r+o+e,1,l+Yh+Tr+Hm+Xh+E+p+r+h+e,1,i+Gt+ep+Bt+R+p+r+o+e,1,i+Gt+ep+Bt+rt+p+r+h+e,1,i+Es+Dn+x+R+p+r+o+e,1,i+Es+Dn+x+rt+p+r+h+e,1,i+Es+Fn+x+pi+p+r+o+e,1,i+Es+Fn+x+ln+p+r+h+e,1,i+z+hu+se+m+p+r+o+e,1,i+z+hu+se+it+p+r+h+e,1,i+z+Un+se+R+p+r+o+e,1,i+z+Un+se+rt+p+r+h+e,1,i+z+Rl+re+vn+p+r+o+e,1,i+z+Rl+re+jc+p+r+h+e,1,i+L+Vn+li+at+p+r+o+e,1,i+L+Vn+li+at+p+r+h+e,1,i+L+Qn+Bt+pi+p+r+o+e,1,i+L+Qn+Bt+Zc+p+r+h+e,1,i+sr+Kn+dt+ye+qu+r+o+e,1,i+sr+Kn+dt+Hc+Xo+r+h+e,1,i+sr+Yn+dt+sa+qu+r+o+e,1,i+sr+Yn+dt+sa+Xo+r+h+e,1,l+Vr+Qr+Po+Ko+bt+st+r+o+e,1,l+Vr+Qr+Po+Ko+bt+Jo+r+h+e,1,l+kt+Kr+jo+Ko+m+p+r+o+e,1,l+kt+Kr+jo+Ko+ot+p+r+h+e,1,l+Yr+Xr+mt+Co+V+p+r+o+e,1,l+Yr+Xr+mt+Co+Zt+p+r+h+e,1,l+Jr+$r+L+yn+V+Tl+r+o+e,1,l+Jr+$r+L+yn+Zt+Rs+r+h+e,1,l+Yt+mr+sr+ku+m+p+r+o+e,1,l+Yt+mr+sr+ku+it+p+r+h+e,1,l+Mo+Ao+tt+gi+bt+st+r+o+e,1,l+Mo+Ao+tt+gi+bt+un+r+h+e,1,l+Ei+Ci+tt+gi+m+Tt+r+o+e,1,l+Ei+Ci+tt+gi+it+nt+r+h+e,1,l+lo+uo+ul+va+xe+p+r+o+e,1,l+lo+uo+ul+va+vi+p+r+h+e,1,l+jd+Nd+Bd+Pe+xe+p+r+o+e,1,l+jd+Nd+Bd+Pe+vi+p+r+h+e,1,i+bk+ry+Gl+m+p+r+o+e,1,i+ht+$g+Gl+pi+p+r+o+e,1,i+te+ty+Gl+at+p+r+o+e,1,i+ut+Ys+x+at+p+r+o+e,1,i+ut+Ys+x+at+p+r+h+e,1,i+te+Xn+dt+sa+p+r+o+e,1,i+te+Xn+dt+sa+p+r+h+e,1,l+Xc+Ed+$+lc+V+p+r+o+e,1,l+Xc+Ed+$+lc+Nc+p+r+h+e,1,l+Oi+Pi+Al+Ya+m+p+r+o+e,1,l+Oi+Pi+Al+Ya+it+p+r+h+e,1,l+Ti+Or+Al+Vo+R+pf+r+o+e,1,l+Ti+Or+Al+Vo+rt+pf+r+h+e,1,l+Cd+ji+Ni+ee+lm+p+r+o+e,1,l+Cd+ji+Ni+ee+Dc+p+r+W+e,1,l+Li+Ii+Ri+gu+ev+p+r+o+e,1,l+Li+Ii+Ri+gu+Bc+p+r+W+e,1,gn+Sh+" +lonc=-86"+Lm+pt+Im+Yp+Fu+Rm+r+o+e,1,l+Fe+Td+Po+ee+$h+p+r+o+e,1,l+Fe+Td+Po+ee+Vd+p+r+W+e,1,l+rf+fo+tl+Eu+vn+ni+r+o+e,1,l+rf+fo+tl+Eu+Dt+Ft+r+h+e,1,l+ho+co+El+Jn+vn+ni+r+o+e,1,l+ho+co+El+Jn+Dt+Ft+r+h+e,1,l+po+mo+cd+nd+vn+ni+r+o+e,1,l+po+mo+cd+nd+Dt+Ft+r+h+e,1,i+xa+Gn+cn+at+p+r+o+e,1,i+xa+Gn+cn+at+p+r+h+e,1,i+dc+e_+rv+m+hm+r+o+e,1,i+xa+We+cn+pi+p+r+o+e,1,i+xa+We+cn+ln+p+r+h+e,1,i+Mn+va+re+m+p+r+o+e,1,i+Mn+Ug+re+qe+p+r+o+e,1,i+pl+Gg+Bt+hk+p+r+o+e,1,l+Zh+Lg+Jc+rl+E+p+r+o+e,1,l+Zh+Lg+Jc+rl+cr+p+r+W+e,1,l+nu+xu+go+pn+m+p+r+o+e,2,i+fn+tr+x+m+ba+r+o+e,1,i+fn+tr+x+ot+ba+r+h+e,1,i+fn+$n+x+R+nv+r+o+e,1,i+fn+$n+x+js+qc+r+h+e,1,i+fn+er+x+vn+tc+r+o+e,1,i+fn+er+x+Dt+Rf+r+h+e,1,i+Lo+nr+dt+at+p+r+o+e,1,i+Lo+nr+dt+at+p+r+h+e,1,i+Xt+Os+x+Ne+p+r+o+e,1,i+Xt+Os+x+Ne+p+r+h+e,1,i+Re+jl+x+m+p+r+o+e,1,i+Re+jl+x+it+p+r+h+e,1,i+Re+zn+Ma+Od+p+r+o+e,1,i+Re+zn+Ma+Od+p+r+h+e,1,i+Re+Hn+Nl+ck+p+r+o+e,1,i+Re+Hn+Nl+Fc+p+r+h+e,1,i+jo+qn+Ct+qe+p+r+o+e,1,i+jo+qn+Ct+Uc+p+r+h+e,1,i+Xt+Os+x+Ne+p+r+o+e,1,i+Xt+Os+x+Ne+p+r+h+e,1,l+Pr+Lr+Jt+np+at+p+r+o+e,1,l+Pr+Lr+Jt+np+at+p+r+h+e,1,i+jo+Zn+Ct+hg+p+r+o+e,1,i+jo+Zn+Ct+Gc+p+r+h+e,1,l+Bi+Di+Jh+Jf+ey+p+r+o+e,1,l+Bi+Di+Jh+Jf+A+p+r+h+e,1,l+ie+Fi+fl+yi+E+p+r+o+e,1,l+ie+Fi+fl+yi+cr+p+r+W+e,1,l+Ui+Gi+Ee+yi+E+p+r+o+e,1,l+Ui+Gi+Ee+yi+cr+p+r+W+e,1,l+Dd+yo+we+ci+E+p+r+o+e,1,l+Dd+yo+we+ci+E+p+r+h+e,1,l+_o+vo+Tn+ci+E+p+r+o+e,1,l+_o+vo+Tn+ci+E+p+r+h+e,1,l+Ir+zi+qm+Co+E+p+r+o+e,1,l+Ir+zi+qm+Co+E+p+r+h+e,1,l+Hi+qi+Rr+Co+E+p+r+o+e,1,l+Hi+qi+Rr+Co+E+p+r+h+e,1,l+nu+Sa+Yo+lt+V+p+r+o+e,1,l+nu+Sa+Yo+lt+ac+p+r+W+e,1,l+Gp+wn+ut+lt+On+p+r+o+e,1,l+Gp+wn+ut+lt+Wu+p+r+W+e,1,l+zp+xn+z+lt+bt+p+r+o+e,1,l+zp+xn+z+lt+Vu+p+r+W+e,1,l+$c+Zi+Jt+_i+E+p+r+o+e,1,l+$c+Zi+Jt+_i+E+p+r+h+e,1,l+jr+Nr+X+_i+E+p+r+o+e,1,l+jr+Nr+X+_i+E+p+r+h+e,1,l+cs+fs+ds+Ho+R+Ka+r+o+e,1,i+ti+Vo+sc+ye+p+r+o+e,1,i+ti+Vo+sc+iu+p+r+h+e,1,l+Wi+Pd+Br+dn+Ld+p+r+o+e,1,l+Wi+Pd+Br+dn+Ld+p+r+W+e,1,l+bo+wo+ht+pn+E+p+r+o+e,1,l+bo+wo+ht+pn+E+p+r+h+e,1,l+Fd+xo+ei+Pt+E+p+r+o+e,1,l+Fd+xo+ei+Pt+E+p+r+h+e,1,l+Vi+tf+$t+Vc+E+p+r+o+e,1,l+Vi+tf+$t+Vc+E+p+r+h+e,1,l+Xi+Ji+kn+Pt+pi+Io+r+o+e,1,l+Xi+Ji+kn+Pt+ln+Io+r+h+e,1,dr+Ud+Ng+Xd+pn+bt+ba+r+o+e,1,l+Ud+Ng+Xd+pn+bt+Tu+r+o+e,1,l+Qi+ef+Zm+Au+R+st+r+o+e,1,l+Qi+ef+Zm+Au+rt+un+r+h+e,1,l+Ki+Yi+Dr+yn+E+In+r+o+e,1,l+Ki+Yi+Dr+yn+E+Ls+r+h+e,1,l+Je+$e+Sn+yn+at+Tu+r+o+e,1,l+Je+$e+Sn+yn+at+ad+r+h+e,1,l+$i+to+Fr+yu+E+tc+r+o+e,1,l+$i+to+Fr+yu+E+sd+r+h+e,1,i+Lo+ec+Bl+m+p+r+o+e,1,i+Lo+ec+Bl+ot+p+r+h+e,1,l+" +lat_1=37"+Ak+es+ms+Z+p+r+o+e,1,l+Id+eo+$+Qo+Be+In+r+o+e,1,l+Id+eo+$+Qo+Is+Ls+r+h+e,1,l+Yt+Ur+tt+Qo+Be+st+r+o+e,1,l+Yt+Ur+tt+Qo+Is+un+r+h+e,1,l+ie+Rd+fl+Wn+m+p+r+o+e,1,l+ie+Rd+fl+Wn+it+p+r+h+e,1,l+no+ro+Gr+lt+m+p+r+o+e,1,l+no+ro+Gr+lt+it+p+r+h+e,1,l+of+jg+wf+ms+E+p+r+o+e,1,l+of+jg+wf+ms+E+p+r+h+e,1,l+ko+So+Vm+dn+E+p+r+o+e,1,l+ko+So+Vm+dn+E+p+r+h+e,2,l+cu+nf+ht+He+E+p+r+h+e,1,l+io+oo+zr+He+E+p+r+o+e,1,l+io+oo+zr+He+E+p+r+h+e,1,l+so+ao+Hp+He+E+p+r+o+e,1,l+so+ao+Hp+He+E+p+r+h+e,1,i+f+He+pt+dk+$y+r+o+e,1,i+Ke+rr+Ct+R+p+r+o+e,1,i+Ke+rr+Ct+js+p+r+h+e,1,i+Ke+ir+Ct+V+ni+r+o+e,1,i+Ke+ir+Ct+Zt+Ft+r+h+e,1,i+Ke+or+Ct+vn+ni+r+o+e,1,i+Ke+or+Ct+Dt+Ft+r+h+e,1,i+Ke+Dl+Ct+E+p+r+o+e,1,i+Ke+Dl+Ct+E+p+r+h+e,1,l+zl+en+mt+oe+m+In+r+o+e,1,l+kt+tn+Ue+oe+m+st+r+o+e,1,l+Hl+nn+L+oe+m+Io+r+o+e,1,l+wv+ud+hl+Ys+Z+p+r+n+o+e,1,dr+wv+ud+hl+Ys+Z+p+r+n+o+e,1,dr+wv+ud+hl+Ys+Z+p+r+n+o+e,1,l+zl+en+mt+oe+ot+jf+r+h+e,1,l+kt+tn+Ue+oe+ot+Jo+r+h+e,1,l+Hl+nn+L+oe+ot+Io+r+h+e,1,i+bh+Xy+dt+m+p+r+o+e,1,i+wh+Ku+dt+m+p+r+o+e,1,i+hs+Hu+bu+m+p+r+o+e,1,i+xh+Jy+bu+m+p+r+o+e,1,i+kh+Yu+" +k=1"+m+p+r+o+e,1,i+hs+Hu+bu+ot+p+r+h+e,1,u+z_+r+o+e,1,u+Cg+r+o+e,1,u+F_+G+r+o+e,1,i+" +lat_0=13.5 +lon_0=144.75 +k=1"+ye+Ka+r+o+e,9,i+ww+" +lon_0=46.5 +k=0.9994"+vn+p+Me+vs+fi+o+e,22,c+r+e,1,i+Zp+rM+x+Z+p+r+o+e,1,i+Zp+$f+x+Z+p+r+o+e,1,i+es+kp+x+Z+p+r+o+e,1,i+Zp+tv+x+Z+p+r+o+e,1,i+es+Sp+x+Z+p+r+o+e,1,i+es+gy+x+Z+p+r+o+e,1,i+es+Mp+x+Z+p+r+o+e,1,i+es+iM+x+Z+p+r+o+e,1,i+es+Ap+x+Z+p+r+o+e,1,i+jo+Ep+x+Z+p+r+o+e,1,i+hl+dS+x+Z+p+r+o+e,1,i+hl+pS+x+Z+p+r+o+e,1,i+hl+mS+x+Z+p+r+o+e,1,i+el+" +lon_0=142"+x+Z+p+r+o+e,1,i+el+am+x+Z+p+r+o+e,1,i+el+" +lon_0=124"+x+Z+p+r+o+e,1,i+el+$f+x+Z+p+r+o+e,1,i+" +lat_0=20"+gy+x+Z+p+r+o+e,1,i+el+kS+x+Z+p+r+o+e,1,u+hf+r+o+e,1,u+Kf+r+o+e,1,u+vp+r+o+e,1,u+kd+r+o+e,1,u+Dp+r+o+e,11,i+f+Rv+pt+m+jt+N+n+o+e,3,c+r+n+e,1,u+Yl+r+n+o+e,1,u+Bu+r+n+o+e,1,u+Vf+r+n+o+e,11,i+f+" +lon_0=105.625 +k=1.000024"+wu+hm+N+n+o+e,1,i+f+" +lon_0=105.625 +k=1.00002514"+wu+hm+r+n+o+e,1,i+f+" +lon_0=96.875 +k=1"+wu+" +y_0=1400000"+N+n+o+e,1,i+f+" +lon_0=96.875 +k=0.99999387"+wu+hr+r+n+o+e,13,u+Tm+G+r+n+o+e,1,u+Ad+G+r+n+o+e,1,u+_d+G+r+n+o+e,45,c+r+e,1,i+zd+$u+wy+op+p+r+o+e,1,i+zd+$u+wy+Wl+p+r+W+e,1,i+zd+$u+wy+op+p+r+o+e,1,i+zd+$u+wy+Wl+p+r+W+e,1,i+Yo+iy+" +k=1.0002"+tp+p+r+o+e,1,i+Yo+iy+" +k=1.0002"+Js+p+r+W+e,1,i+Yo+iy+" +k=1.0002"+tp+p+r+o+e,1,i+Yo+iy+" +k=1.0002"+Js+p+r+W+e,1,l+Ph+Lh+oy+sf+tp+" +y_0=130000"+r+o+e,1,l+Ph+Lh+oy+sf+Js+WS+r+W+e,1,l+Ph+Lh+oy+sf+tp+" +y_0=130000"+r+o+e,1,l+Ph+Lh+oy+sf+Js+WS+r+W+e,1,l+Fe+ut+sy+Ck+" +x_0=120000 +y_0=60000"+r+o+e,1,l+Fe+ut+sy+Ck+VS+gM+r+W+e,1,l+Fe+ut+sy+Ck+" +x_0=120000 +y_0=60000"+r+o+e,1,l+Fe+ut+sy+Ck+VS+gM+r+W+e,1,i+Lo+Le+NS+op+p+r+o+e,1,i+Lo+Le+NS+Wl+p+r+W+e,1,i+Lo+Le+NS+op+p+r+o+e,1,i+Lo+Le+NS+Wl+p+r+W+e,1,l+Ih+Ee+lt+n_+Ne+" +y_0=30000"+r+o+e,1,l+Ih+Ee+lt+n_+ld+yM+r+W+e,1,l+Ih+Ee+lt+n_+Ne+" +y_0=30000"+r+o+e,1,l+Ih+Ee+lt+n_+ld+yM+r+W+e,1,gn+Rh+BS+DS+" +k=1"+ov+yS+Fu+FS+r+o+e,1,gn+Rh+BS+DS+" +k=1"+vS+QS+Fu+FS+r+W+e,1,gn+Rh+BS+DS+" +k=1"+ov+yS+Fu+FS+r+o+e,1,gn+Rh+BS+DS+" +k=1"+vS+QS+Fu+FS+r+W+e,1,i+te+Le+Tk+wu+p+r+o+e,1,i+te+Le+Tk+$s+p+r+W+e,1,i+te+Le+Tk+wu+p+r+o+e,1,i+te+Le+Tk+$s+p+r+W+e,1,i+zd+Ok+US+tp+p+r+o+e,1,i+zd+Ok+US+Js+p+r+W+e,1,i+zd+Ok+US+tp+p+r+o+e,1,i+zd+Ok+US+Js+p+r+W+e,1,i+sv+th+mc+wu+p+r+o+e,1,i+sv+th+mc+$s+p+r+W+e,1,i+sv+th+mc+wu+p+r+o+e,1,i+sv+th+mc+$s+p+r+W+e,1,i+Yo+Le+pg+wu+p+r+o+e,1,i+Yo+Le+pg+$s+p+r+W+e,1,i+Yo+Le+pg+wu+p+r+o+e,1,i+Yo+Le+pg+$s+p+r+W+e,1,i+tl+eh+GS+" +x_0=10000"+p+r+o+e,1,i+tl+eh+GS+MM+p+r+W+e,1,i+tl+eh+GS+" +x_0=10000"+p+r+o+e,1,i+tl+eh+GS+MM+p+r+W+e,1,i+tl+Cl+zS+op+p+r+o+e,1,i+tl+Cl+zS+Wl+p+r+W+e,1,i+tl+Cl+zS+op+p+r+o+e,1,i+tl+Cl+zS+Wl+p+r+W+e,1,i+av+pc+" +k=1.0001"+tp+p+r+o+e,1,i+av+pc+" +k=1.0001"+Js+p+r+W+e,1,i+av+pc+" +k=1.0001"+tp+p+r+o+e,1,i+av+pc+" +k=1.0001"+Js+p+r+W+e,1,gn+cm+r_+" +alpha=5 +k=1 +x_0=-300000 +y_0=-4600000"+Fu+" +gamma=5"+r+o+e,1,gn+cm+r_+" +alpha=5 +k=1"+KS+Kk+Fu+" +gamma=5"+r+W+e,1,gn+cm+r_+" +alpha=5 +k=1 +x_0=-300000 +y_0=-4600000"+Fu+" +gamma=5"+r+o+e,1,gn+cm+r_+" +alpha=5 +k=1"+KS+Kk+Fu+" +gamma=5"+r+W+e,1,i+lv+nh+Vy+" +x_0=60000"+p+r+o+e,1,i+lv+nh+Vy+_M+p+r+W+e,1,i+lv+nh+Vy+" +x_0=60000"+p+r+o+e,1,i+lv+nh+Vy+_M+p+r+W+e,1,i+jh+al+Pk+HS+p+r+o+e,1,i+jh+al+Pk+vM+p+r+W+e,1,i+jh+al+Pk+HS+p+r+o+e,1,i+jh+al+Pk+vM+p+r+W+e,1,l+cu+Lk+ay+i_+ye+vy+r+o+e,1,l+cu+Lk+ay+i_+ou+Qg+r+W+e,1,l+cu+Lk+ay+i_+ye+vy+r+o+e,1,l+cu+Lk+ay+i_+ou+Qg+r+W+e,1,i+Nh+rh+qS+wu+p+r+o+e,1,i+Nh+rh+qS+$s+p+r+W+e,1,i+Nh+rh+qS+wu+p+r+o+e,1,i+Nh+rh+qS+$s+p+r+W+e,1,i+Bh+o_+Ik+Z+p+r+o+e,1,i+Bh+o_+Ik+Z+p+r+W+e,1,i+Bh+o_+Ik+Z+p+r+o+e,1,i+Bh+o_+Ik+Z+p+r+W+e,4,l+nu+Sa+Yo+lt+V+p+r+o+e,1,l+nu+Sa+Yo+lt+ac+p+r+W+e,2,i+f+Sv+" +k=1"+m+p+r+n+o+e,5,i+f+Wa+" +k=0.9985000000000001"+ov+p+r+n+o+e,1,i+f+Wa+" +k=1"+cM+p+r+n+o+e,3,l+cu+nf+ht+He+E+p+r+o+e,1,l+nu+xu+go+pn+ot+p+r+h+e,1,c+Me+vs+" +towgs84=-24,-203,268,0,0,0,0"+e,1,c+Me+vs+" +towgs84=-183,-15,273,0,0,0,0"+e,1,c+_+" +towgs84=-235,-110,393,0,0,0,0"+e,1,l+Gp+wn+ut+lt+On+p+r+o+e,1,l+Gp+wn+ut+lt+Wu+p+r+W+e,1,l+zp+xn+z+lt+bt+p+r+o+e,1,l+zp+xn+z+lt+Vu+p+r+W+e,5,c+Me+vs+Np+e,2,c+Me+vs+" +towgs84=-63,176,185,0,0,0,0"+e,21,u+lf+Me+vs+Np+o+e,7,l+Qy+Rk+es+s_+V+p+r+n+o+e,1,l+Qy+Rk+es+s_+Zt+p+r+n+h+e,1,l+Qy+Rk+es+s_+V+p+r+o+e,1,l+Qy+Rk+es+s_+Zt+p+r+h+e,6,ya+Oa+ta+Z+p+N+n+o+e,1,ya+F+ta+Z+p+N+n+o+e,1,"+proj=cea"+ta+" +lat_ts=30"+Z+p+N+n+o+e,29,l+" +lat_1=39 +lat_2=43"+Al+Sv+Z+p+r+n+o+e,21,c+r+e,1,i+bp+wp+tM+Bv+Zk+r+o+e,6,c+r+e,1,i+bp+wp+tM+Bv+Zk+r+o+e,14,u+Du+Me+vs+lr+o+e,1,u+lu+Me+vs+lr+o+e,1,u+Kl+Me+vs+lr+o+e,28,c+r+e,2,c+r+e,2,c+r+e,2,c+r+e,16,l+" +lat_1=43.2 +lat_0=43.2 +lon_0=-95.25 +k_0=1.000052 +x_0=3505207.010414021 +y_0=2926085.852171705"+r+h+e,1,l+" +lat_1=43.16666666666666 +lat_0=43.16666666666666 +lon_0=-92.75 +k_0=1.000043 +x_0=3810007.62001524 +y_0=2987045.974091948"+r+h+e,1,i+af+" +lon_0=-91.2 +k=1.000035 +x_0=4114808.229616459 +y_0=2529845.05969012"+r+h+e,1,l+" +lat_1=42.53333333333333 +lat_0=42.53333333333333 +lon_0=-94.83333333333333 +k_0=1.000045 +x_0=4419608.839217679 +y_0=2621285.242570485"+r+h+e,1,l+" +lat_1=42.65 +lat_0=42.65 +lon_0=-92.25 +k_0=1.000032 +x_0=4724409.448818898 +y_0=2712725.425450851"+r+h+e,1,i+af+" +lon_0=-95.73333333333333 +k=1.000039 +x_0=5029210.058420117 +y_0=2011684.023368047"+r+h+e,1,i+af+" +lon_0=-94.63333333333334"+Vy+" +x_0=5334010.668021336 +y_0=2072644.145288291"+r+h+e,1,i+af+" +lon_0=-93.71666666666667 +k=1.000033 +x_0=5638811.277622555 +y_0=2133604.267208535"+r+h+e,1,i+af+" +lon_0=-92.81666666666666"+Hd+" +x_0=5943611.887223775 +y_0=2194564.389128779"+r+h+e,1,l+" +lat_1=41.83333333333334 +lat_0=41.83333333333334 +lon_0=-91.66666666666667 +k_0=1.00002 +x_0=6248412.496824994 +y_0=2438404.876809754"+r+h+e,1,i+af+" +lon_0=-90.53333333333333"+Hd+" +x_0=6553213.106426213 +y_0=2316484.632969266"+r+h+e,1,l+" +lat_1=40.91666666666666 +lat_0=40.91666666666666 +lon_0=-93.75 +k_0=1.000037 +x_0=6858013.716027432"+Yk+r+h+e,1,i+af+pp+sp+" +x_0=7162814.325628651 +y_0=1950723.901447803"+r+h+e,1,i+af+" +lon_0=-91.25 +k=1.000018 +x_0=7467614.93522987"+Yk+r+h+e,3,c+r+e,1,u+Du+G+r+o+e,1,u+lu+G+r+o+e,1,u+Kl+G+r+o+e,1,u+lf+G+r+o+e,1,u+Kg+G+r+o+e,1,u+Yg+G+r+o+e,1,u+Ry+G+r+o+e,1,u+V_+G+r+o+e,3,c+r+e,2,c+r+e,23,i+mg+a_+wy+Ne+p+r+o+e,1,i+" +lat_0=48"+a_+" +k=1.00019"+ye+p+r+o+e,1,l+jk+mg+Zu+" +k_0=1.000145"+Ne+Ka+r+o+e,1,l+jk+mg+" +lon_0=-108.5"+sf+R+" +y_0=150000"+r+o+e,1,l+Dh+Fh+ke+sf+R+ni+r+o+e,1,l+Dh+Fh+ke+" +k_0=1.00009"+ye+vy+r+o+e,1,i+cm+" +lon_0=-107.75 +k=1.000148"+R+p+r+o+e,1,l+fM+" +lat_0=46.25 +lon_0=-111.25 +k_0=1.000185"+ye+ni+r+o+e,1,l+Iw+Rw+Hv+" +k_0=1.0001515"+R+vy+r+o+e,1,i+jw+qv+" +k=1.00024"+ye+p+r+o+e,1,i+mg+a_+wy+ld+p+r+W+e,1,i+" +lat_0=48"+a_+" +k=1.00019"+ou+p+r+W+e,1,l+jk+mg+Zu+" +k_0=1.000145"+ld+" +y_0=199999.9999992"+r+W+e,1,l+jk+mg+" +lon_0=-108.5"+sf+Qd+" +y_0=150000.00001464"+r+W+e,1,l+Dh+Fh+ke+sf+Qd+Xk+r+W+e,1,l+Dh+Fh+ke+" +k_0=1.00009"+ou+" +y_0=49999.99971024"+r+W+e,1,i+cm+" +lon_0=-107.75 +k=1.000148"+Qd+p+r+W+e,1,l+fM+" +lat_0=46.25 +lon_0=-111.25 +k_0=1.000185"+ou+Xk+r+W+e,1,l+Iw+Rw+Hv+" +k_0=1.0001515"+Qd+Qg+r+W+e,1,i+jw+qv+" +k=1.00024"+iu+p+r+h+e,3,i+fm+" +lon_0=-122.45 +k=1.000007 +x_0=48000 +y_0=24000"+r+o+e,1,i+fm+" +lon_0=-122.45 +k=1.000007 +x_0=48000 +y_0=24000"+r+h+e,1,c+r+e,3,c+N+e,3,c+N+e,3,i+Uh+Gh+" +k=1"+vg+" +y_0=126867.909"+id+od+" +towgs84=-275.7224,94.7824,340.8944,-8.001,-4.42,-11.821,1"+o+e,115,i+dm+l_+gc+D+H+r+o+e,1,i+dm+l_+gc+D+H+r+h+e,1,i+gg+up+yc+D+H+r+o+e,1,i+gg+up+yc+D+H+r+h+e,1,i+" +lat_0=39"+ih+_c+D+H+r+o+e,1,i+" +lat_0=39"+ih+_c+D+H+r+h+e,1,i+" +lat_0=40.45"+pm+Nk+D+H+r+o+e,1,i+" +lat_0=40.45"+pm+Nk+D+H+r+h+e,1,i+" +lat_0=40.05"+Zv+qd+D+H+r+o+e,1,i+" +lat_0=40.05"+Zv+qd+D+H+r+h+e,1,i+Bk+mm+Zd+D+H+r+o+e,1,i+Bk+mm+Zd+D+H+r+h+e,1,i+" +lat_0=39"+uv+ZS+D+H+r+o+e,1,i+" +lat_0=39"+uv+ZS+D+H+r+h+e,1,i+" +lat_0=40.4"+Wv+_c+D+H+r+o+e,1,i+" +lat_0=40.4"+Wv+_c+D+H+r+h+e,1,i+dm+Vv+yg+D+H+r+o+e,1,i+dm+Vv+yg+D+H+r+h+e,1,i+hv+Qv+" +k=1.000021"+D+H+r+o+e,1,i+hv+Qv+" +k=1.000021"+D+H+r+h+e,1,i+cv+Kv+" +k=1.000024"+D+H+r+o+e,1,i+cv+Kv+" +k=1.000024"+D+H+r+h+e,1,i+" +lat_0=40.15"+Yv+" +k=1.000032"+D+H+r+o+e,1,i+" +lat_0=40.15"+Yv+" +k=1.000032"+D+H+r+h+e,1,i+" +lat_0=38.1"+mm+_g+D+H+r+o+e,1,i+" +lat_0=38.1"+mm+_g+D+H+r+h+e,1,i+" +lat_0=38.45"+oh+" +k=1.000018"+D+H+r+o+e,1,i+" +lat_0=38.45"+oh+" +k=1.000018"+D+H+r+h+e,1,i+" +lat_0=38.65"+Xv+Nk+D+H+r+o+e,1,i+" +lat_0=38.65"+Xv+Nk+D+H+r+h+e,1,i+" +lat_0=39.1"+Jv+Zd+D+H+r+o+e,1,i+" +lat_0=39.1"+Jv+Zd+D+H+r+h+e,1,i+fv+l_+Zd+D+H+r+o+e,1,i+fv+l_+Zd+D+H+r+h+e,1,i+" +lat_0=38.2"+u_+sp+D+H+r+o+e,1,i+" +lat_0=38.2"+u_+sp+D+H+r+h+e,1,i+dv+ih+" +k=1.000033"+D+H+r+o+e,1,i+dv+ih+" +k=1.000033"+D+H+r+h+e,1,i+pv+up+qd+D+H+r+o+e,1,i+pv+up+qd+D+H+r+h+e,1,i+" +lat_0=39.95"+pm+_g+D+H+r+o+e,1,i+" +lat_0=39.95"+pm+_g+D+H+r+h+e,1,i+gg+uv+yc+D+H+r+o+e,1,i+gg+uv+yc+D+H+r+h+e,1,i+hv+$v+Dk+D+H+r+o+e,1,i+hv+$v+Dk+D+H+r+h+e,1,i+mv+" +lon_0=-85.7"+gc+D+H+r+o+e,1,i+mv+" +lon_0=-85.7"+gc+D+H+r+h+e,1,i+" +lat_0=39.9"+Vc+gc+D+H+r+o+e,1,i+" +lat_0=39.9"+Vc+gc+D+H+r+h+e,1,i+" +lat_0=39.65"+gv+Zd+D+H+r+o+e,1,i+" +lat_0=39.65"+gv+Zd+D+H+r+h+e,1,i+" +lat_0=37.95"+Hs+Hd+D+H+r+o+e,1,i+" +lat_0=37.95"+Hs+Hd+D+H+r+h+e,1,i+" +lat_0=39.75"+h_+pg+D+H+r+o+e,1,i+" +lat_0=39.75"+h_+pg+D+H+r+h+e,1,i+mv+Hs+yc+D+H+r+o+e,1,i+mv+Hs+yc+D+H+r+h+e,1,i+dv+iv+gc+D+H+r+o+e,1,i+dv+iv+gc+D+H+r+h+e,1,i+" +lat_0=38.7 +lon_0=-85.95"+Fk+D+H+r+o+e,1,i+" +lat_0=38.7 +lon_0=-85.95"+Fk+D+H+r+h+e,1,i+Uk+oh+Hd+D+H+r+o+e,1,i+Uk+oh+Hd+D+H+r+h+e,1,i+" +lat_0=40.3"+by+qd+D+H+r+o+e,1,i+" +lat_0=40.3"+by+qd+D+H+r+h+e,1,i+" +lat_0=38.55"+tb+yg+D+H+r+o+e,1,i+" +lat_0=38.55"+tb+yg+D+H+r+h+e,1,i+" +lat_0=38.8"+gv+_g+D+H+r+o+e,1,i+" +lat_0=38.8"+gv+_g+D+H+r+h+e,1,i+Gk+Hs+yc+D+H+r+o+e,1,i+Gk+Hs+yc+D+H+r+h+e,1,i+" +lat_0=38.4"+c_+mc+D+H+r+o+e,1,i+" +lat_0=38.4"+c_+mc+D+H+r+h+e,1,i+fv+h_+" +k=1.000037"+D+H+r+o+e,1,i+fv+h_+" +k=1.000037"+D+H+r+h+e,1,i+Uk+eb+_c+D+H+r+o+e,1,i+Uk+eb+_c+D+H+r+h+e,1,i+gg+" +lon_0=-86.75"+Hd+D+H+r+o+e,1,i+gg+" +lon_0=-86.75"+Hd+D+H+r+h+e,1,i+" +lat_0=38.95"+mm+yg+D+H+r+o+e,1,i+" +lat_0=38.95"+mm+yg+D+H+r+h+e,1,i+" +lat_0=39.45"+u_+yc+D+H+r+o+e,1,i+" +lat_0=39.45"+u_+yc+D+H+r+h+e,1,i+cv+sh+_c+D+H+r+o+e,1,i+cv+sh+_c+D+H+r+h+e,1,i+Bk+nb+Fk+D+H+r+o+e,1,i+Bk+nb+Fk+D+H+r+h+e,1,i+zk+" +lon_0=-86.7"+sp+D+H+r+o+e,1,i+zk+" +lon_0=-86.7"+sp+D+H+r+h+e,1,i+" +lat_0=37.85"+pm+mc+D+H+r+o+e,1,i+" +lat_0=37.85"+pm+mc+D+H+r+h+e,1,i+fm+" +lon_0=-87.95"+Dk+D+H+r+o+e,1,i+fm+" +lon_0=-87.95"+Dk+D+H+r+h+e,1,i+" +lat_0=39.7"+up+" +k=1.000044"+D+H+r+o+e,1,i+" +lat_0=39.7"+up+" +k=1.000044"+D+H+r+h+e,1,i+Hk+" +lon_0=-85.3"+qd+D+H+r+o+e,1,i+Hk+" +lon_0=-85.3"+qd+D+H+r+h+e,1,i+Gk+rb+ZS+D+H+r+o+e,1,i+Gk+rb+ZS+D+H+r+h+e,1,i+fm+" +lon_0=-87.05 +k=1.000014"+D+H+r+o+e,1,i+fm+" +lon_0=-87.05 +k=1.000014"+D+H+r+h+e,1,i+Po+by+" +k=1.000041"+D+H+r+o+e,1,i+Po+by+" +k=1.000041"+D+H+r+h+e,1,i+Hk+Wd+" +k=1.000017"+D+H+r+o+e,1,i+Hk+Wd+" +k=1.000017"+D+H+r+h+e,1,i+" +lat_0=40.2"+sh+_c+D+H+r+o+e,1,i+" +lat_0=40.2"+sh+_c+D+H+r+h+e,1,i+zk+f_+mc+D+H+r+o+e,1,i+zk+f_+mc+D+H+r+h+e,1,i+pv+c_+sp+D+H+r+o+e,1,i+pv+c_+sp+D+H+r+h+e,1,i+dm+" +lon_0=-85.25"+gc+D+H+r+o+e,1,i+dm+" +lon_0=-85.25"+gc+D+H+r+h+e,3,c+r+n+e,1,u+Kl+r+n+o+e,1,u+lf+r+n+o+e,1,u+Kg+r+n+o+e,152,i+Nw+He+" +k=1.0000365285 +x_0=147218.6942 +y_0=0.0037"+r+o+e,1,i+Bw+ib+" +k=1.0000495683 +x_0=172821.9461 +y_0=0.0017"+r+o+e,1,i+Dw+ob+" +k=1.0000486665 +x_0=93150 +y_0=0.0029"+r+o+e,1,l+Fw+Uw+sb+" +k_0=1.0000331195 +x_0=228600.4575 +y_0=148551.4837"+r+o+e,1,i+cd+" +lon_0=-88"+sp+" +x_0=31600 +y_0=4600"+r+o+e,1,i+Gw+ab+" +k=1.0000382778 +x_0=175260.3502 +y_0=0.0048"+r+o+e,1,l+zw+Hw+lb+" +k_0=1.0000383841 +x_0=64008.1276 +y_0=59445.9043"+r+o+e,1,i+qw+" +lon_0=-88.5 +k=1.0000286569 +x_0=244754.8893 +y_0=0.0049"+r+o+e,1,l+Zw+Ww+ub+" +k_0=1.0000391127 +x_0=60045.72 +y_0=44091.4346"+r+o+e,1,i+" +lat_0=43.6"+hb+" +k=1.0000463003 +x_0=199949.1989 +y_0=0.0086"+r+o+e,1,l+Vw+Qw+cb+" +k_0=1.00003498 +x_0=169164.3381 +y_0=111569.6134"+r+o+e,1,l+bM+wM+Kw+" +k_0=1.0000349151 +x_0=113690.6274 +y_0=53703.1201"+r+o+e,1,l+YS+XS+fb+" +k_0=1.0000384786 +x_0=247193.2944 +y_0=146591.9896"+r+o+e,1,i+Yw+db+" +k=1.0000346418 +x_0=263347.7263 +y_0=0.0076"+r+o+e,1,i+" +lat_0=44.4"+pb+" +k=1.0000187521 +x_0=158801.1176 +y_0=0.0023"+r+o+e,1,i+Xw+pp+" +k=1.0000385418 +x_0=59131.3183 +y_0=0.0041"+r+o+e,1,i+Jw+mb+" +k=1.0000410324 +x_0=51816.104 +y_0=0.003"+r+o+e,1,l+$w+tx+gb+" +k_0=1.000035079 +x_0=120091.4402 +y_0=91687.92389999999"+r+o+e,1,i+ex+yb+" +k=1.0000552095 +x_0=133502.6683 +y_0=0.0063"+r+o+e,1,i+nx+_b+" +k=1.0000673004 +x_0=275844.5533 +y_0=0.0157"+r+o+e,1,i+rx+" +lon_0=-90.8 +k=1.0000349452 +x_0=242316.4841 +y_0=0.01"+r+o+e,1,l+ix+ox+vb+" +k_0=1.0000390487 +x_0=170078.7403 +y_0=45830.2947"+r+o+e,1,l+sx+ax+ah+" +k_0=1.0000344057 +x_0=150876.3018 +y_0=79170.7795"+r+o+e,1,i+lx+bb+" +k=1.0000394961 +x_0=113081.0261 +y_0=0.0045"+r+o+e,1,i+ux+wb+" +k=1.0000677153 +x_0=220980.4419 +y_0=0.008500000000000001"+r+o+e,1,i+hx+xb+" +k=1.0000353 +x_0=27000 +y_0=25000"+r+o+e,1,i+cx+kb+" +k=1.0000260649 +x_0=185928.3728 +y_0=0.0009"+r+o+e,1,i+fx+f_+" +k=1.0000233704 +x_0=79857.7614 +y_0=0.0012"+r+o+e,1,i+dx+Sb+" +k=1.0000319985 +x_0=130454.6598 +y_0=0.0033"+r+o+e,1,l+px+mx+Mb+" +k_0=1.0000627024 +x_0=198425.197 +y_0=105279.7829"+r+o+e,1,i+gx+Ab+" +k=1.0000599003 +x_0=116129.0323 +y_0=0.0058"+r+o+e,1,l+yx+_x+" +lon_0=-89.77 +k_0=1.000053289 +x_0=74676.1493 +y_0=55049.2669"+r+o+e,1,i+vx+Eb+" +k=1.0000234982 +x_0=238658.8794 +y_0=0.0032"+r+o+e,1,i+bx+Cb+" +k=1.0000362499 +x_0=105461.0121 +y_0=0.0029"+r+o+e,1,l+wx+xx+Tb+" +k_0=1.0000434122 +x_0=204521.209 +y_0=121923.9861"+r+o+e,1,i+kx+Ob+" +k=1.0000236869 +x_0=182880.3676 +y_0=0.0033"+r+o+e,1,l+Sx+Mx+Pb+" +k_0=1.0000686968 +x_0=70104.1401 +y_0=57588.0346"+r+o+e,1,l+Ax+Ex+Lb+" +k_0=1.0000362977 +x_0=167640.3354 +y_0=86033.0876"+r+o+e,1,i+Cx+lh+" +k=1.0000433849 +x_0=141732.2823 +y_0=0.0059"+r+o+e,1,l+Tx+Ox+" +lon_0=-89.5 +k_0=1.000039936 +x_0=56388.1128 +y_0=50022.1874"+r+o+e,1,i+Px+Ib+" +k=1.0000649554 +x_0=227990.8546 +y_0=0.0109"+r+o+e,1,l+JS+$S+Rb+" +k_0=1.0000375653 +x_0=202387.6048 +y_0=134255.4253"+r+o+e,1,i+Lx+jb+" +k=1.0000337311 +x_0=146304.2926 +y_0=0.0068"+r+o+e,1,i+Ix+Nb+" +k=1.0000495976 +x_0=250546.1013 +y_0=0.0234"+r+o+e,1,i+Rx+Bb+" +k=1.0000373868 +x_0=185623.5716 +y_0=0.0051"+r+o+e,1,l+jx+Nx+Db+" +k_0=1.0000573461 +x_0=216713.2336 +y_0=120734.1631"+r+o+e,1,i+zh+Fb+" +k=1.000032144 +x_0=262433.3253 +y_0=0.009599999999999999"+r+o+e,1,i+zh+lh+" +k=1.0000381803 +x_0=165506.7302 +y_0=0.0103"+r+o+e,1,l+Bx+Dx+Ub+" +k_0=1.0000597566 +x_0=187147.5744 +y_0=107746.7522"+r+o+e,1,i+Fx+Gb+" +k=1.0000361538 +x_0=256946.9138 +y_0=0.0041"+r+o+e,1,l+Ux+Gx+zb+" +k_0=1.0000408158 +x_0=222504.4451 +y_0=47532.0602"+r+o+e,1,l+zx+Hx+Hb+" +k_0=1.0000730142 +x_0=134417.0689 +y_0=50337.1092"+r+o+e,1,l+qx+Zx+qb+" +k_0=1.0000367192 +x_0=232562.8651 +y_0=111088.2224"+r+o+e,1,l+Wx+Vx+Zb+" +k_0=1.0000475376 +x_0=234086.8682 +y_0=188358.6058"+r+o+e,1,i+Qx+Wb+" +k=1.00003738 +x_0=120091.4415 +y_0=0.003"+r+o+e,1,i+Kx+Vb+" +k=1.0000346179 +x_0=208788.418 +y_0=0.0034"+r+o+e,1,i+Yx+Qb+" +k=1.0000333645 +x_0=185013.9709 +y_0=0.007"+r+o+e,1,l+Xx+Jx+ah+" +k_0=1.0000392096 +x_0=120091.4402 +y_0=45069.7587"+r+o+e,1,l+$x+tk+He+" +k_0=1.0000421209 +x_0=208483.6173 +y_0=134589.754"+r+o+e,1,i+Nw+He+" +k=1.0000365285 +x_0=147218.6941325883 +y_0=0.00365760731521463"+r+h+e,1,i+Bw+ib+" +k=1.0000495683 +x_0=172821.945948692 +y_0=0.001828803657607315"+r+h+e,1,i+Dw+ob+" +k=1.0000486665 +x_0=93150"+ll+r+h+e,1,l+Fw+Uw+sb+" +k_0=1.0000331195 +x_0=228600.4575057151 +y_0=148551.4835661671"+r+h+e,1,i+cd+" +lon_0=-88"+sp+" +x_0=31599.99989839979 +y_0=4599.999898399797"+r+h+e,1,i+Gw+ab+" +k=1.0000382778 +x_0=175260.3502159004"+Kb+r+h+e,1,l+zw+Hw+lb+" +k_0=1.0000383841 +x_0=64008.12771145543 +y_0=59445.90419100838"+r+h+e,1,i+qw+" +lon_0=-88.5 +k=1.0000286569 +x_0=244754.8892049784"+Kb+r+h+e,1,l+Zw+Ww+ub+" +k_0=1.0000391127 +x_0=60045.72009144018 +y_0=44091.43449326898"+r+h+e,1,i+" +lat_0=43.6"+hb+" +k=1.0000463003 +x_0=199949.198983998"+Yb+r+h+e,1,l+Vw+Qw+cb+" +k_0=1.00003498 +x_0=169164.338023876 +y_0=111569.613512827"+r+h+e,1,l+bM+wM+Kw+" +k_0=1.0000349151 +x_0=113690.6273812548 +y_0=53703.12024384048"+r+h+e,1,l+YS+XS+fb+" +k_0=1.0000384786 +x_0=247193.2943865888 +y_0=146591.9896367793"+r+h+e,1,i+Yw+db+" +k=1.0000346418 +x_0=263347.7263906528 +y_0=0.00762001524003048"+r+h+e,1,i+" +lat_0=44.4"+pb+" +k=1.0000187521 +x_0=158801.1176022352 +y_0=0.002438404876809754"+r+h+e,1,i+Xw+pp+" +k=1.0000385418 +x_0=59131.31826263652"+Xb+r+h+e,1,i+Jw+mb+" +k=1.0000410324 +x_0=51816.10393700787"+ll+r+h+e,1,l+$w+tx+gb+" +k_0=1.000035079"+Jk+" +y_0=91687.92390144781"+r+h+e,1,i+ex+yb+" +k=1.0000552095 +x_0=133502.6682245364 +y_0=0.006400812801625603"+r+h+e,1,i+nx+_b+" +k=1.0000673004 +x_0=275844.5532131065 +y_0=0.0158496316992634"+r+h+e,1,i+rx+" +lon_0=-90.8 +k=1.0000349452 +x_0=242316.484023368 +y_0=0.01005842011684023"+r+h+e,1,l+ix+ox+vb+" +k_0=1.0000390487 +x_0=170078.7401574803 +y_0=45830.29484378968"+r+h+e,1,l+sx+ax+ah+" +k_0=1.0000344057 +x_0=150876.3017526035 +y_0=79170.77937515875"+r+h+e,1,i+lx+bb+" +k=1.0000394961 +x_0=113081.0261620523 +y_0=0.004572009144018288"+r+h+e,1,i+ux+wb+" +k=1.0000677153 +x_0=220980.4419608839"+Yb+r+h+e,1,i+hx+xb+" +k=1.0000353 +x_0=27000 +y_0=24999.99989839979"+r+h+e,1,i+cx+kb+" +k=1.0000260649 +x_0=185928.3727711455 +y_0=0.0009144018288036576"+r+h+e,1,i+fx+f_+" +k=1.0000233704 +x_0=79857.76154432308 +y_0=0.001219202438404877"+r+h+e,1,i+dx+Sb+" +k=1.0000319985 +x_0=130454.6596901194"+mp+r+h+e,1,l+px+mx+Mb+" +k_0=1.0000627024 +x_0=198425.1968503937 +y_0=105279.7828803657"+r+h+e,1,i+gx+Ab+" +k=1.0000599003 +x_0=116129.0322580645"+Jb+r+h+e,1,l+yx+_x+" +lon_0=-89.77 +k_0=1.000053289 +x_0=74676.1493522987 +y_0=55049.26695453391"+r+h+e,1,i+vx+Eb+" +k=1.0000234982 +x_0=238658.8794513589"+ll+r+h+e,1,i+bx+Cb+" +k=1.0000362499 +x_0=105461.0121412243"+ll+r+h+e,1,l+wx+xx+Tb+" +k_0=1.0000434122 +x_0=204521.2090424181 +y_0=121923.9861823724"+r+h+e,1,i+kx+Ob+" +k=1.0000236869 +x_0=182880.3675895352"+mp+r+h+e,1,l+Sx+Mx+Pb+" +k_0=1.0000686968 +x_0=70104.14020828041 +y_0=57588.03474726949"+r+h+e,1,l+Ax+Ex+Lb+" +k_0=1.0000362977 +x_0=167640.3352806706 +y_0=86033.08773177546"+r+h+e,1,i+Cx+lh+" +k=1.0000433849 +x_0=141732.2822453645"+Jb+r+h+e,1,l+Tx+Ox+" +lon_0=-89.5 +k_0=1.000039936 +x_0=56388.11277622555 +y_0=50022.1874523749"+r+h+e,1,i+Px+Ib+" +k=1.0000649554 +x_0=227990.8544577089 +y_0=0.01097282194564389"+r+h+e,1,l+JS+$S+Rb+" +k_0=1.0000375653 +x_0=202387.6047752095 +y_0=134255.4254508509"+r+h+e,1,i+Lx+jb+" +k=1.0000337311 +x_0=146304.2926085852 +y_0=0.006705613411226822"+r+h+e,1,i+Ix+Nb+" +k=1.0000495976 +x_0=250546.1013970028 +y_0=0.02346964693929388"+r+h+e,1,i+Rx+Bb+" +k=1.0000373868 +x_0=185623.5715519431 +y_0=0.005181610363220727"+r+h+e,1,l+jx+Nx+Db+" +k_0=1.0000573461 +x_0=216713.2337312675 +y_0=120734.1631699263"+r+h+e,1,i+zh+Fb+" +k=1.000032144 +x_0=262433.3251714504 +y_0=0.009448818897637795"+r+h+e,1,i+zh+lh+" +k=1.0000381803 +x_0=165506.7300990602 +y_0=0.01036322072644145"+r+h+e,1,l+Bx+Dx+Ub+" +k_0=1.0000597566 +x_0=187147.5742951486 +y_0=107746.7521463043"+r+h+e,1,i+Fx+Gb+" +k=1.0000361538 +x_0=256946.9138938278"+Xb+r+h+e,1,l+Ux+Gx+zb+" +k_0=1.0000408158 +x_0=222504.44500889 +y_0=47532.0603505207"+r+h+e,1,l+zx+Hx+Hb+" +k_0=1.0000730142 +x_0=134417.0688341377 +y_0=50337.10927101854"+r+h+e,1,l+qx+Zx+qb+" +k_0=1.0000367192 +x_0=232562.8651257302 +y_0=111088.2224028448"+r+h+e,1,l+Wx+Vx+Zb+" +k_0=1.0000475376 +x_0=234086.8681737363 +y_0=188358.6059436119"+r+h+e,1,i+Qx+Wb+" +k=1.00003738 +x_0=120091.4414020828"+ll+r+h+e,1,i+Kx+Vb+" +k=1.0000346179 +x_0=208788.4178816358"+mp+r+h+e,1,i+Yx+Qb+" +k=1.0000333645 +x_0=185013.9709423419 +y_0=0.007010414020828041"+r+h+e,1,l+Xx+Jx+ah+" +k_0=1.0000392096"+Jk+" +y_0=45069.7588011176"+r+h+e,1,l+$x+tk+He+" +k_0=1.0000421209 +x_0=208483.6172720346 +y_0=134589.7539243078"+r+h+e,41,c+r+e,6,i+f+" +lon_0=68.51666666666667 +k=1 +x_0=1300000"+Zg+r+o+e,1,i+f+" +lon_0=71.51666666666667 +k=1"+oM+Zg+r+o+e,1,i+f+" +lon_0=74.51666666666667 +k=1"+sM+Zg+r+o+e,1,i+f+" +lon_0=77.51666666666667 +k=1"+aM+Zg+r+o+e,1,i+f+" +lon_0=80.51666666666667 +k=1 +x_0=5300000"+Zg+r+o+e,12308,i+f+As+" +k=1"+ur+p+d+a+o+e,1,i+f+ea+" +k=1"+Si+p+d+a+o+e,1,i+f+Za+" +k=1"+Cu+p+d+a+o+e,1,i+f+Wh+" +k=1"+Xa+p+d+a+o+e,1,i+f+eu+" +k=1"+Kc+p+d+a+o+e,1,i+f+qp+" +k=1"+Yc+p+d+a+o+e,1,i+f+Ig+" +k=1"+rc+p+d+a+o+e,1,i+f+Wm+" +k=1"+Su+p+d+a+o+e,1,i+f+Rg+" +k=1"+ic+p+d+a+o+e,1,i+f+na+" +k=1"+aa+p+d+a+o+e,1,i+f+ra+" +k=1"+Bs+p+d+a+o+e,1,i+f+ga+" +k=1"+Ia+p+d+a+o+e,1,i+f+ia+" +k=1"+Ra+p+d+a+o+e,1,i+f+oa+" +k=1"+Ol+p+d+a+o+e,1,i+f+oi+" +k=1"+Pa+p+d+a+o+e,1,i+f+Go+" +k=1"+La+p+d+a+o+e,1,i+f+To+" +k=1"+la+p+d+a+o+e,1,i+f+Ro+" +k=1"+ja+p+d+a+o+e,1,i+f+wi+" +k=1"+ua+p+d+a+o+e,1,i+f+Oo+" +k=1"+Na+p+d+a+o+e,1,i+f+rm+" +k=1"+oc+p+d+a+o+e,1,i+f+rp+" +k=1"+Ba+p+d+a+o+e,1,i+f+td+" +k=1"+Da+p+d+a+o+e,1,i+f+im+" +k=1"+Fa+p+d+a+o+e,1,i+f+ed+" +k=1"+Ua+p+d+a+o+e,1,i+f+hc+" +k=1"+Ds+p+d+a+o+e,1,i+f+Gu+" +k=1"+il+p+d+a+o+e,1,i+f+zu+" +k=1"+ys+p+d+a+o+e,1,i+f+fc+" +k=1"+ol+p+d+a+o+e,103,u+mh+T+ha+o+e,1,u+uf+T+ha+o+e,1,u+Du+T+ha+o+e,1,u+lu+T+ha+o+e,111,u+ff+G+Y+q+o+e,1,u+Qf+G+Y+q+o+e,1,u+hf+G+Y+q+o+e,1,u+Kf+G+Y+q+o+e,1,u+vp+G+Y+q+o+e,1,u+kd+G+Y+q+o+e,1,u+Dp+G+Y+q+o+e,1,u+Jg+G+Y+q+o+e,1,u+Ly+G+Y+q+o+e,1,u+Pc+G+Y+q+o+e,91,u+ff+G+Y+Ye+o+e,1,u+Qf+G+Y+Ye+o+e,1,u+hf+G+Y+Ye+o+e,1,u+Kf+G+Y+Ye+o+e,1,u+vp+G+Y+Ye+o+e,1,u+kd+G+Y+Ye+o+e,1,u+Dp+G+Y+Ye+o+e,1,u+Jg+G+Y+Ye+o+e,80,u+uf+_+Rn+o+e,1,u+Du+_+Rn+o+e,1,u+lu+_+Rn+o+e,1,u+Kl+_+Rn+o+e,1,u+lf+_+Rn+o+e,59,u+Kl+_+Rn+o+e,39,u+lu+d+Gf+o+e,1,u+Kl+d+Gf+o+e,251,i+we+" +lon_0=1 +k=1"+R+ka+_+di+IS+o+e,1,i+we+" +lon_0=1 +k=1"+Z+p+_+di+IS+o+e,31,u+Ml+G+_+bi+o+e,1,u+Lc+G+_+bi+o+e,1,u+Md+G+_+bi+o+e,110,u+Vf+G+Me+me+Sl+o+e,1,u+mh+G+Me+me+Sl+o+e,1,u+uf+G+Me+me+Sl+o+e,99,u+mh+G+T+ui+o+e,1,u+uf+G+T+ui+o+e,1,u+Du+G+T+ui+o+e,58,u+mh+T+ui+o+e,1,u+uf+T+ui+o+e,1,u+Du+T+ui+o+e,51,u+cf+G+M+Pn+o+e,1,u+ff+G+M+Pn+o+e,1,u+Qf+G+M+Pn+o+e,141,i+f+Yf+ai+V+p+T+Pu+o+e,1,i+" +lat_0=13.17638888888889 +lon_0=-59.55972222222222 +k=0.9999986"+HS+" +y_0=75000"+T+Pu+o+e,121,i+f+na+" +k=1"+aa+p+d+w+o+e,1,i+f+ra+" +k=1"+Bs+p+d+w+o+e,1,i+f+ga+" +k=1"+Ia+p+d+w+o+e,1,i+f+ia+" +k=1"+Ra+p+d+w+o+e,1,i+f+oa+" +k=1"+Ol+p+d+w+o+e,1,i+f+oi+" +k=1"+Pa+p+d+w+o+e,1,i+f+Go+" +k=1"+La+p+d+w+o+e,1,i+f+To+" +k=1"+la+p+d+w+o+e,1,i+f+Ro+" +k=1"+ja+p+d+w+o+e,1,i+f+wi+" +k=1"+ua+p+d+w+o+e,1,i+f+Oo+" +k=1"+Na+p+d+w+o+e,30,i+f+na+" +k=1"+m+p+d+w+o+e,1,i+f+ra+" +k=1"+m+p+d+w+o+e,1,i+f+ga+" +k=1"+m+p+d+w+o+e,1,i+f+ia+" +k=1"+m+p+d+w+o+e,1,i+f+oa+" +k=1"+m+p+d+w+o+e,1,i+f+oi+" +k=1"+m+p+d+w+o+e,1,i+f+Go+" +k=1"+m+p+d+w+o+e,1,i+f+To+" +k=1"+m+p+d+w+o+e,1,i+f+Ro+" +k=1"+m+p+d+w+o+e,1,i+f+wi+" +k=1"+m+p+d+w+o+e,1,i+f+Oo+" +k=1"+m+p+d+w+o+e,37,l+Mh+Ah+Oa+ta+Ne+" +y_0=5400000"+_+" +pm=brussels"+o+e,280,_m+gh+ta+" +k_0=1"+Z+p+M+bs+" +pm=bern"+o+e,1,_m+gh+xp+" +k_0=1"+E+Ka+M+bs+o+e,1,_m+gh+xp+" +k_0=1"+Z+p+M+bs+o+e,36,u+Ga+_+hi+o+e,78,i+Hh+" +lon_0=-77.08091666666667 +k=1"+xe+st+_+hi+o+e,1,i+Hh+" +lon_0=-74.08091666666667 +k=1"+xe+st+_+hi+o+e,1,i+Hh+" +lon_0=-71.08091666666667 +k=1"+xe+st+_+hi+o+e,1,i+Hh+" +lon_0=-68.08091666666667 +k=1"+xe+st+_+hi+o+e,133,u+Yl+G+T+rs+o+e,1,u+Bu+G+T+rs+o+e,58,i+f+" +lon_0=11.5"+pt+m+jt+T+rs+o+e,1,i+f+Wa+pt+m+jt+T+rs+o+e,79,i+F+Lv+" +k=1"+bt+p+r+n+o+e,1,i+F+Wc+" +k=1"+On+p+r+n+o+e,1,i+F+nm+" +k=1"+Be+p+r+n+o+e,1,i+F+sg+" +k=1"+ur+p+r+n+o+e,1,i+F+Rv+" +k=1"+Si+p+r+n+o+e,1,i+F+RS+" +k=1"+Cu+p+r+n+o+e,1,i+F+rd+" +k=1"+Xa+p+r+n+o+e,4,i+F+Lv+" +k=1"+bt+p+N+n+o+e,1,i+F+Wc+" +k=1"+On+p+N+n+o+e,1,i+F+nm+" +k=1"+Be+p+N+n+o+e,1,i+F+sg+" +k=1"+ur+p+N+n+o+e,1,i+F+Rv+" +k=1"+Si+p+N+n+o+e,1,i+F+RS+" +k=1"+Cu+p+N+n+o+e,1,i+F+rd+" +k=1"+Xa+p+N+n+o+e,4,i+F+Lv+" +k=1"+bt+p+_+Ge+o+e,1,i+F+Wc+" +k=1"+On+p+_+Ge+o+e,1,i+F+nm+" +k=1"+Be+p+_+Ge+o+e,1,i+F+sg+" +k=1"+ur+p+_+Ge+o+e,1,i+F+Rv+" +k=1"+Si+p+_+Ge+o+e,1,i+F+RS+" +k=1"+Cu+p+_+Ge+o+e,1,i+F+rd+" +k=1"+Xa+p+_+Ge+o+e,37,u+Vf+G+Me+me+Qt+o+e,1,u+mh+G+Me+me+Qt+o+e,40,i+f+Ss+" +k=1"+Z+p+Ms+Me+me+Qt+o+e,2,i+f+bv+" +k=1"+Z+p+Ms+Me+me+Qt+o+e,2,i+f+Og+" +k=1"+Z+p+Ms+Me+me+Qt+o+e,2,i+f+As+" +k=1"+Z+p+Ms+Me+me+Qt+o+e,2,i+f+jy+" +k=1"+Z+p+Ms+Me+me+Qt+o+e,2,i+f+Pg+" +k=1"+Z+p+Ms+Me+me+Qt+o+e,2,i+f+ea+" +k=1"+Z+p+Ms+Me+me+Qt+o+e,2,i+f+" +lon_0=29 +k=1"+Z+p+Ms+Me+me+Qt+o+e,2,i+f+Um+" +k=1"+Z+p+Ms+Me+me+Qt+o+e,2,i+f+Za+" +k=1"+Z+p+Ms+Me+me+Qt+o+e,39,u+Yl+vt+he+ks+o+e,59,l+" +lat_1=36"+es+" +lon_0=9.9"+jm+m+ka+vt+he+ks+o+e,1,l+Ky+Yy+" +lon_0=9.9"+fd+m+ka+vt+he+ks+o+e,129,u+za+G+_+ss+o+e,1,u+Ml+G+_+ss+o+e,1,u+Lc+G+_+ss+o+e,1,u+Md+G+_+ss+o+e,1,u+vd+G+_+ss+o+e,175,l+mM+" +lat_0=34.65 +lon_0=37.35 +k_0=0.9996256"+at+ka+vt+he+Ks+o+e,70,l+mM+" +lat_0=34.65 +lon_0=37.35 +k_0=0.9996256"+at+ka+vt+he+Ks+o+e,10,us+" +lat_0=34.2 +lon_0=39.15 +k=0.9995341"+Z+p+vt+he+Ks+o+e,211,i+Es+" +lon_0=35 +k=1"+at+" +y_0=1100000"+Cs+ca+o+e,1,i+Es+Um+" +k=1 +x_0=615000 +y_0=810000"+Cs+ca+o+e,1,i+Es+ea+" +k=1"+pi+Ka+Cs+ca+o+e,1,i+Es+ea+" +k=1"+pi+$_+Cs+ca+o+e,34,u+uu+_+U+o+e,1,u+ju+_+U+o+e,1,u+gp+_+U+o+e,1,u+Em+_+U+o+e,1,u+Yl+_+U+o+e,1,u+Bu+_+U+o+e,1,u+Vf+_+U+o+e,1,u+mh+_+U+o+e,1,u+uf+_+U+o+e,1,u+Du+_+U+o+e,1,u+lu+_+U+o+e,52,i+f+ta+pt+m+p+_+U+o+e,5,i+f+" +lon_0=5"+pt+m+p+_+U+o+e,144,u+Kl+T+zf+o+e,1,u+lf+T+zf+o+e,460,_m+" +lat_0=47.14439372222222 +lon_0=19.04857177777778 +k_0=0.99993 +x_0=650000"+Ka+pM+Ag+o+e,130,i+f+" +lon_0=94.5"+x+R+hr+N+n+o+e,1,i+f+" +lon_0=97.5"+x+R+hr+N+n+o+e,1,i+f+" +lon_0=100.5"+x+R+hr+N+n+o+e,1,i+f+" +lon_0=103.5"+x+R+hr+N+n+o+e,1,i+f+" +lon_0=106.5"+x+R+hr+N+n+o+e,1,i+f+" +lon_0=109.5"+x+R+hr+N+n+o+e,1,i+f+" +lon_0=112.5"+x+R+hr+N+n+o+e,1,i+f+" +lon_0=115.5"+x+R+hr+N+n+o+e,1,i+f+" +lon_0=118.5"+x+R+hr+N+n+o+e,1,i+f+" +lon_0=121.5"+x+R+hr+N+n+o+e,1,i+f+" +lon_0=124.5"+x+R+hr+N+n+o+e,1,i+f+am+x+R+hr+N+n+o+e,1,i+f+" +lon_0=130.5"+x+R+hr+N+n+o+e,1,i+f+tv+x+R+hr+N+n+o+e,1,i+f+" +lon_0=136.5"+x+R+hr+N+n+o+e,1,i+f+" +lon_0=139.5"+x+R+hr+N+n+o+e,1,u+Tm+nl+Oe+Wt+o+e,1,u+Ad+nl+Oe+Wt+o+e,1,u+cf+nl+Oe+Wt+o+e,1,u+ff+nl+Oe+Wt+o+e,1,u+Qf+nl+Oe+Wt+o+e,1,u+hf+nl+Oe+Wt+o+e,1,u+Kf+nl+Oe+Wt+o+e,14,u+Tm+N+n+o+e,1,u+Ad+N+n+o+e,1,u+cf+N+n+o+e,1,u+ff+N+n+o+e,1,u+Qf+N+n+o+e,1,u+hf+N+n+o+e,1,u+Kf+N+n+o+e,5,u+Ad+G+N+n+o+e,1,u+cf+G+N+n+o+e,1,u+ff+G+N+n+o+e,1,u+Qf+G+N+n+o+e,1,u+hf+G+N+n+o+e,1,u+Kf+G+N+n+o+e,1,u+vp+G+N+n+o+e,1,u+kd+G+N+n+o+e,3,u+Ad+G+nl+Oe+Wt+o+e,1,u+cf+G+nl+Oe+Wt+o+e,1,u+ff+G+nl+Oe+Wt+o+e,1,u+Qf+G+nl+Oe+Wt+o+e,1,u+hf+G+nl+Oe+Wt+o+e,1,u+Kf+G+nl+Oe+Wt+o+e,1,u+vp+G+nl+Oe+Wt+o+e,1,u+kd+G+nl+Oe+Wt+o+e,52,u+Tm+Ve+Kt+tu+o+e,1,u+Ad+Ve+Kt+tu+o+e,1,u+cf+Ve+Kt+tu+o+e,99,u+Ad+Ve+Kt+Hf+o+e,1,u+cf+Ve+Kt+Hf+o+e,52,l+" +lat_1=18"+Xd+lc+" +k_0=1 +x_0=167638.49597 +y_0=121918.90616"+kg+Sg+zc+e,100,l+" +lat_1=18"+Xd+lc+" +k_0=1"+qe+" +y_0=150000"+j+S_+o+e,105,u+Q_+Ve+Kt+$l+o+e,1,u+Tm+Ve+Kt+$l+o+e,5,u+Kg+bc+Ca+os+o+e,1,u+Yg+bc+Ca+os+o+e,1,u+Ry+bc+Ca+os+o+e,29,u+Yg+Ts+mn+ge+o+e,1,u+Ry+Ts+mn+ge+o+e,1,u+V_+Ts+mn+ge+o+e,1,u+Q_+Ts+mn+ge+o+e,1,u+Tm+Ts+mn+ge+o+e,1,u+Ad+Ts+mn+ge+o+e,23,l+Qy+" +lat_0=39.5 +lon_0=68 +k_0=0.99846154 +x_0=2153865.73916853 +y_0=2368292.194628102"+Xs+Ns+ls+e,1,l+fg+dc+" +lon_0=68"+zo+su+au+Xs+Ns+ls+e,1,l+Cv+el+" +lon_0=74"+zo+su+au+Xs+Ns+ls+e,1,l+" +lat_1=19 +lat_0=19 +lon_0=80"+zo+su+au+Xs+Ns+ls+e,1,l+" +lat_1=12 +lat_0=12 +lon_0=80"+zo+su+au+Xs+Ns+ls+e,1,l+Cv+el+Ta+zo+" +x_0=2743185.69 +y_0=914395.23"+Ve+Kt+$l+o+e,1,l+fg+dc+" +lon_0=68"+zo+" +x_0=2743196.4 +y_0=914398.8"+bc+Ca+os+o+e,1,l+Cv+el+" +lon_0=74"+zo+" +x_0=2743196.4 +y_0=914398.8"+bc+Ca+os+o+e,1,l+fg+dc+" +lon_0=68"+zo+Kp+Ym+Ts+mn+ge+o+e,1,l+Cv+el+" +lon_0=74"+zo+Kp+Ym+Ts+mn+ge+o+e,1,l+Cv+el+Ta+zo+Kp+Ym+Ts+mn+ge+o+e,1,l+" +lat_1=19 +lat_0=19 +lon_0=80"+zo+Kp+Ym+Ts+mn+ge+o+e,1,l+Cv+el+Ta+zo+su+au+Xs+Ns+ls+e,1,l+" +lat_1=12 +lat_0=12 +lon_0=80"+zo+Kp+Ym+Ts+mn+ge+o+e,117,Ln+" +lat_0=1.287646666666667 +lon_0=103.8530022222222"+HS+" +y_0=30000"+ts+Qe+_e+o+e,47,u+Ad+ts+Qe+_e+o+e,1,u+cf+ts+Qe+_e+o+e,52,l+fg+dc+eu+Xp+bt+hM+T+rg+o+e,118,u+Ga+_+ma+o+e,1,u+wa+_+ma+o+e,1,u+Us+_+ma+o+e,97,u+wl+_+xt+o+e,1,u+Ga+_+xt+o+e,1,u+wa+_+xt+o+e,1,u+Us+_+xt+o+e,1,u+za+_+xt+o+e,56,u+wl+G+_+xt+o+e,1,u+Ga+G+_+xt+o+e,1,u+wa+G+_+xt+o+e,1,u+Us+G+_+xt+o+e,1,u+za+G+_+xt+o+e,1,u+Ml+G+_+xt+o+e,9,i+" +lat_0=-6 +lon_0=-80.5 +k=0.99983008 +x_0=222000 +y_0=1426834.743"+_+xt+o+e,1,i+" +lat_0=-9.5 +lon_0=-76 +k=0.99932994 +x_0=720000 +y_0=1039979.159"+_+xt+o+e,1,i+" +lat_0=-9.5"+Ya+" +k=0.99952992 +x_0=1324000 +y_0=1040084.558"+_+xt+o+e,107,i+ew+" +lon_0=-1"+my+" +x_0=274319.51"+p+T+j_+o+e,231,u+Em+vt+he+o+e,160,i+f+To+cn+m+p+j+Zo+o+e,1,i+f+AS+cn+m+p+j+Zo+o+e,1,i+f+ES+cn+m+p+j+Zo+o+e,1,i+f+Ro+cn+m+p+j+Zo+o+e,1,i+f+py+cn+m+p+j+Zo+o+e,433,u+uu+r+n+o+e,1,u+ju+r+n+o+e,1,u+gp+r+n+o+e,1,u+Em+r+n+o+e,1,u+Yl+r+n+o+e,1,u+Bu+r+n+o+e,1,u+Vf+r+n+o+e,1,u+mh+r+n+o+e,1,u+uf+r+n+o+e,1,u+Du+r+n+o+e,47,i+f+Va+pt+m+p+r+n+o+e,48,u+Yl+G+_+$m+o+e,259,l+Ky+Yy+qk+fd+m+ka+vt+he+$a+o+e,1,l+" +lat_1=29.7 +lat_0=29.7"+qk+" +k_0=0.9996155960000001"+m+ka+vt+he+$a+o+e,2,l+" +lat_1=26.1 +lat_0=26.1"+qk+" +k_0=0.999616304 +x_0=1200000"+Tl+vt+he+$a+o+e,1,l+" +lat_1=22.5 +lat_0=22.5"+qk+" +k_0=0.999616437"+bt+Tl+vt+he+$a+o+e,42,u+Du+M+W_+o+e,94,u+Em+T+as+o+e,1,u+Yl+T+as+o+e,59,i+ig+" +lon_0=4.5"+my+" +x_0=230738.26"+p+T+as+o+e,1,i+ig+" +lon_0=8.5"+my+" +x_0=670553.98"+p+T+as+o+e,1,i+ig+" +lon_0=12.5"+my+" +x_0=1110369.7"+p+T+as+o+e,239,u+Yl+vt+he+qf+o+e,60,u+Yl+G+vt+he+qf+o+e,9,u+Oy+S+o+e,1,u+F_+S+o+e,1,u+ak+S+o+e,1,u+z_+S+o+e,1,u+Cg+S+o+e,1,u+ly+S+o+e,1,u+Tg+S+o+e,1,u+U_+S+o+e,1,u+G_+S+o+e,1,u+Cm+S+o+e,1,u+bd+S+o+e,1,u+wd+S+o+e,1,u+xd+S+o+e,1,u+Sd+S+o+e,1,u+Zf+S+o+e,1,u+Wf+S+o+e,1,u+wl+S+o+e,1,u+Ga+S+o+e,1,u+wa+S+o+e,1,u+Us+S+o+e,1,u+za+S+o+e,1,u+Ml+S+o+e,7,i+ul+sl+tm+P+p+S+h+e,1,i+Es+Wd+re+P+p+S+h+e,1,gn+" +lat_0=57"+Eh+Ch+x+" +x_0=5000000.001016002 +y_0=-5000000.001016002"+Fu+ps+S+h+e,1,i+No+wk+x+P+p+S+h+e,1,i+No+xk+x+P+p+S+h+e,1,i+No+Gd+x+P+p+S+h+e,1,i+No+xf+x+P+p+S+h+e,1,i+No+Hu+x+P+p+S+h+e,1,i+No+kk+x+" +x_0=213360.4267208534"+p+S+h+e,1,i+No+Sk+x+P+p+S+h+e,1,i+No+zy+x+wm+p+S+h+e,1,l+Th+Oh+Av+Mk+Ze+p+S+h+e,1,l+gr+xu+X+Gs+A+p+S+h+e,1,l+yr+_r+$+Gs+A+p+S+h+e,1,l+Ut+vr+mf+lt+A+p+S+h+e,1,l+Vh+zm+br+gf+A+p+S+h+e,1,l+wr+xr+yf+Cl+A+p+S+h+e,1,l+kr+Sr+Mr+Il+A+p+S+h+e,2,i+Re+jn+x+P+p+S+h+e,1,i+Re+Nn+x+P+p+S+h+e,1,i+Re+Ll+re+P+p+S+h+e,1,l+Hr+qr+$t+qa+A+p+S+h+e,1,l+Zr+bf+Wr+qa+A+p+S+h+e,1,l+" +lat_1=39.71666666666667 +lat_2=40.78333333333333"+X+ke+A+p+S+h+e,1,l+Qh+Kh+bn+ke+A+p+S+h+e,1,l+Ut+Ar+L+ke+A+p+S+h+e,1,l+Er+_f+Cr+Mu+wm+p+S+h+e,1,i+Tn+Bn+vf+P+p+S+h+e,1,i+Gt+dn+Bt+P+p+S+h+e,1,i+Gt+ep+Bt+P+p+S+h+e,1,l+Yh+Tr+Hm+Xh+A+p+S+h+e,6,i+Es+Dn+x+P+p+S+h+e,1,i+Es+Fn+x+P+p+S+h+e,1,i+z+Un+se+P+p+S+h+e,1,i+z+hu+se+P+p+S+h+e,1,i+z+Rl+re+P+p+S+h+e,1,i+L+Vn+li+P+p+S+h+e,1,i+L+Qn+Bt+P+p+S+h+e,1,i+sr+Kn+dt+P+p+S+h+e,1,i+sr+Yn+dt+P+p+S+h+e,1,l+Vr+Qr+Po+Ko+A+p+S+h+e,1,l+kt+Kr+jo+Ko+A+p+S+h+e,1,l+Yr+Xr+mt+Co+A+p+S+h+e,1,l+Jr+$r+L+yn+A+p+S+h+e,1,l+Yt+mr+sr+ku+A+p+S+h+e,1,l+" +lat_1=36.73333333333333 +lat_2=37.93333333333333"+tt+gi+A+p+S+h+e,1,l+" +lat_1=31.16666666666667 +lat_2=32.66666666666666 +lat_0=30.66666666666667"+va+A+p+S+h+e,1,l+" +lat_1=29.3 +lat_2=30.7 +lat_0=28.66666666666667"+Pe+A+p+S+h+e,1,i+ht+Ys+x+P+p+S+h+e,1,i+te+Xn+dt+P+p+S+h+e,1,l+" +lat_1=38.3 +lat_2=39.45"+bn+lc+" +x_0=243840.4876809754"+p+S+h+e,1,l+" +lat_1=41.71666666666667 +lat_2=42.68333333333333"+Al+Vo+wm+p+S+h+e,1,l+" +lat_1=41.28333333333333 +lat_2=41.48333333333333"+Al+Ya+" +x_0=60960.12192024384"+p+S+h+e,4,l+" +lat_1=47.03333333333333 +lat_2=48.63333333333333"+El+Jn+A+p+S+h+e,1,l+" +lat_1=45.61666666666667 +lat_2=47.05"+tl+Eu+A+p+S+h+e,1,l+" +lat_1=43.78333333333333 +lat_2=45.21666666666667"+cd+nd+A+p+S+h+e,1,i+kn+Gn+tm+P+p+S+h+e,1,i+ul+We+Bt+P+p+S+h+e,1,i+Mn+Ug+re+P+p+S+h+e,1,i+Mn+va+re+P+p+S+h+e,1,i+pl+Gg+Bt+P+p+S+h+e,1,l+" +lat_1=34.41666666666666 +lat_2=33.86666666666667 +lat_0=34.13333333333333"+al+" +x_0=1276106.450596901 +y_0=1268253.006858014"+S+h+e,48,i+ut+Ys+x+ne+p+r+n+h+e,1,i+te+Xn+dt+sa+p+r+n+h+e,1,l+ho+co+El+Jn+Dt+Ft+r+n+h+e,1,l+rf+fo+tl+Eu+Dt+Ft+r+n+h+e,1,l+po+mo+cd+nd+Dt+Ft+r+n+h+e,1,l+nu+xu+go+pn+ot+p+r+n+h+e,1,l+of+jg+wf+ms+E+p+r+n+h+e,1,l+ko+So+Vm+dn+E+p+r+n+h+e,1,i+ut+Ys+x+ne+p+r+n+h+e,1,i+te+Xn+dt+sa+p+r+n+h+e,1,l+ho+co+El+Jn+Dt+Ft+r+n+h+e,1,l+rf+fo+tl+Eu+Dt+Ft+r+n+h+e,1,l+po+mo+cd+nd+Dt+Ft+r+n+h+e,1,l+nu+xu+go+pn+ot+p+r+n+h+e,1,l+of+jg+wf+ms+E+p+r+n+h+e,1,l+ko+So+Vm+dn+E+p+r+n+h+e,1,i+ut+Ys+x+ne+p+r+n+h+e,1,i+te+Xn+dt+sa+p+r+n+h+e,1,l+ho+co+El+Jn+Dt+Ft+r+n+h+e,1,l+rf+fo+tl+Eu+Dt+Ft+r+n+h+e,1,l+po+mo+cd+nd+Dt+Ft+r+n+h+e,1,l+nu+xu+go+pn+ot+p+r+n+h+e,1,l+of+jg+wf+ms+E+p+r+n+h+e,1,l+ko+So+Vm+dn+E+p+r+n+h+e,21,i+f+ci+x+At+p+r+n+o+e,1,i+f+dn+x+At+p+r+n+o+e,1,i+f+Xf+x+At+p+r+n+o+e,1,i+f+gu+x+At+p+r+n+o+e,1,i+f+He+x+At+p+r+n+o+e,1,i+f+fy+x+At+p+r+n+o+e,1,i+f+$d+x+At+p+r+n+o+e,1,i+f+" +lon_0=-53"+x+At+p+r+n+o+e,1,i+f+jS+x+At+p+r+n+o+e,2,u+Oy+r+n+o+e,1,u+F_+r+n+o+e,1,u+ak+r+n+o+e,1,u+z_+r+n+o+e,1,u+Cg+r+n+o+e,1,u+ly+r+n+o+e,1,u+Tg+r+n+o+e,1,u+U_+r+n+o+e,1,u+G_+r+n+o+e,1,u+Cm+r+n+o+e,1,u+bd+r+n+o+e,1,u+wd+r+n+o+e,1,u+xd+r+n+o+e,1,u+Sd+r+n+o+e,1,u+Zf+r+n+o+e,1,u+Wf+r+n+o+e,1,u+wl+r+n+o+e,1,u+Ga+r+n+o+e,1,u+wa+r+n+o+e,1,u+Us+r+n+o+e,1,u+za+r+n+o+e,1,u+Ml+r+n+o+e,1,u+Lc+r+n+o+e,6,i+ul+sl+tm+R+p+r+n+o+e,1,i+Es+Wd+re+E+p+r+n+o+e,1,gn+" +lat_0=57"+Eh+Ch+x+nc+si+Fu+ps+r+n+o+e,1,i+No+wk+x+m+p+r+n+o+e,1,i+No+xk+x+m+p+r+n+o+e,1,i+No+Gd+x+m+p+r+n+o+e,1,i+No+xf+x+m+p+r+n+o+e,1,i+No+Hu+x+m+p+r+n+o+e,1,i+No+kk+x+m+p+r+n+o+e,1,i+No+Sk+x+m+p+r+n+o+e,1,i+No+zy+x+m+p+r+n+o+e,1,l+Th+Oh+Av+Mk+xe+p+r+n+o+e,1,l+gr+xu+X+Gs+Ae+Tt+r+n+o+e,1,l+yr+_r+$+Gs+Ae+Tt+r+n+o+e,1,l+Ut+vr+mf+lt+Ae+Tt+r+n+o+e,1,l+Vh+zm+br+gf+Ae+Tt+r+n+o+e,1,l+wr+xr+yf+Cl+Ae+Tt+r+n+o+e,1,l+kr+Sr+Mr+Il+Ae+Tt+r+n+o+e,2,i+Re+jn+x+mi+p+r+n+o+e,1,i+Re+Nn+x+mi+p+r+n+o+e,1,i+Re+Ll+re+mi+p+r+n+o+e,1,l+Hr+qr+$t+qa+V+p+r+n+o+e,1,l+Zr+bf+Wr+qa+V+Tl+r+n+o+e,1,l+Mi+Ai+X+ke+Fo+Uo+r+n+o+e,1,l+Qh+Kh+bn+ke+Fo+Uo+r+n+o+e,1,l+Ut+Ar+L+ke+Fo+Uo+r+n+o+e,1,l+Er+_f+Cr+Mu+Om+Pm+r+n+o+e,1,i+Tn+Bn+vf+R+p+r+n+o+e,1,i+Gt+dn+Bt+R+p+r+n+o+e,1,i+Gt+ep+Bt+R+p+r+n+o+e,1,l+Yh+Tr+Hm+Xh+E+p+r+n+o+e,1,i+bh+Xy+dt+m+p+r+n+o+e,1,i+wh+Ku+dt+m+p+r+n+o+e,1,i+hs+Hu+bu+m+p+r+n+o+e,1,i+xh+Jy+bu+m+p+r+n+o+e,1,i+kh+Yu+" +k=1"+m+p+r+n+o+e,1,i+Es+Dn+x+R+p+r+n+o+e,1,i+Es+Fn+x+pi+p+r+n+o+e,1,i+z+Un+se+R+p+r+n+o+e,1,i+z+hu+se+m+p+r+n+o+e,1,i+z+Rl+re+vn+p+r+n+o+e,1,i+L+Vn+li+at+p+r+n+o+e,1,i+L+Qn+Bt+pi+p+r+n+o+e,1,i+sr+Kn+dt+ye+qu+r+n+o+e,1,i+sr+Yn+dt+sa+qu+r+n+o+e,1,l+Vr+Qr+Po+Ko+bt+st+r+n+o+e,1,l+kt+Kr+jo+Ko+m+p+r+n+o+e,1,l+Yr+Xr+mt+Co+V+p+r+n+o+e,1,l+Jr+$r+L+yn+V+Tl+r+n+o+e,2,l+Ei+Ci+tt+gi+m+Tt+r+n+o+e,1,l+lo+uo+ul+va+xe+p+r+n+o+e,1,l+jd+Nd+Bd+Pe+xe+p+r+n+o+e,1,i+ut+Ys+x+at+p+r+n+o+e,1,i+te+Xn+dt+sa+p+r+n+o+e,1,l+Xc+Ed+$+lc+V+p+r+n+o+e,1,l+Ti+Or+Al+Vo+R+pf+r+n+o+e,1,l+Oi+Pi+Al+Ya+m+p+r+n+o+e,1,l+Li+Ii+Ri+gu+ev+p+r+n+o+e,1,l+Cd+ji+Ni+ee+lm+p+r+n+o+e,1,l+Fe+Td+Po+ee+$h+p+r+n+o+e,1,l+ho+co+El+Jn+vn+ni+r+n+o+e,1,l+rf+fo+tl+Eu+vn+ni+r+n+o+e,1,l+po+mo+cd+nd+vn+ni+r+n+o+e,1,i+xa+Gn+cn+at+p+r+n+o+e,1,i+xa+We+cn+pi+p+r+n+o+e,1,i+Mn+Ug+re+qe+p+r+n+o+e,1,i+Mn+va+re+m+p+r+n+o+e,1,i+pl+Gg+Bt+hk+p+r+n+o+e,41,u+Kl+T+lr+o+e,1,u+lf+T+lr+o+e,80,u+Us+_+N_+o+e,80,"+proj=nzmg +lat_0=-41 +lon_0=173 +x_0=2510000 +y_0=6023150"+_+k+o+e,5,i+" +lat_0=-36.87986527777778 +lon_0=174.7643393611111"+x+at+ar+_+k+o+e,1,i+" +lat_0=-37.76124980555556 +lon_0=176.46619725 +k=1"+at+ar+_+k+o+e,1,i+" +lat_0=-38.62470277777778 +lon_0=177.8856362777778 +k=1"+at+ar+_+k+o+e,1,i+" +lat_0=-39.65092930555556 +lon_0=176.6736805277778 +k=1"+at+ar+_+k+o+e,1,i+" +lat_0=-39.13575830555556 +lon_0=174.22801175 +k=1"+at+ar+_+k+o+e,1,i+" +lat_0=-39.51247038888889 +lon_0=175.6400368055556 +k=1"+at+ar+_+k+o+e,1,i+" +lat_0=-40.24194713888889 +lon_0=175.4880996111111 +k=1"+at+ar+_+k+o+e,1,i+" +lat_0=-40.92553263888889 +lon_0=175.6473496666667 +k=1"+at+ar+_+k+o+e,1,i+" +lat_0=-41.30131963888888 +lon_0=174.7766231111111 +k=1"+at+ar+_+k+o+e,1,i+" +lat_0=-40.71475905555556 +lon_0=172.6720465 +k=1"+at+ar+_+k+o+e,1,i+" +lat_0=-41.27454472222222 +lon_0=173.2993168055555 +k=1"+at+ar+_+k+o+e,1,i+" +lat_0=-41.28991152777778 +lon_0=172.1090281944444 +k=1"+at+ar+_+k+o+e,1,i+" +lat_0=-41.81080286111111 +lon_0=171.5812600555556 +k=1"+at+ar+_+k+o+e,1,i+" +lat_0=-42.33369427777778 +lon_0=171.5497713055556 +k=1"+at+ar+_+k+o+e,1,i+" +lat_0=-42.68911658333333 +lon_0=173.0101333888889 +k=1"+at+ar+_+k+o+e,1,i+" +lat_0=-41.54448666666666 +lon_0=173.8020741111111 +k=1"+at+ar+_+k+o+e,1,i+" +lat_0=-42.88632236111111 +lon_0=170.9799935 +k=1"+at+ar+_+k+o+e,1,i+" +lat_0=-43.11012813888889 +lon_0=170.2609258333333 +k=1"+at+ar+_+k+o+e,1,i+" +lat_0=-43.97780288888889 +lon_0=168.606267 +k=1"+at+ar+_+k+o+e,1,i+" +lat_0=-43.59063758333333 +lon_0=172.7271935833333 +k=1"+at+ar+_+k+o+e,1,i+" +lat_0=-43.74871155555556 +lon_0=171.3607484722222 +k=1"+at+ar+_+k+o+e,1,i+" +lat_0=-44.40222036111111 +lon_0=171.0572508333333 +k=1"+at+ar+_+k+o+e,1,i+" +lat_0=-44.73526797222222 +lon_0=169.4677550833333 +k=1"+at+ar+_+k+o+e,1,i+" +lat_0=-45.13290258333333 +lon_0=168.3986411944444 +k=1"+at+ar+_+k+o+e,1,i+" +lat_0=-45.56372616666666 +lon_0=167.7388617777778 +k=1"+at+ar+_+k+o+e,1,i+" +lat_0=-45.81619661111111 +lon_0=170.6285951666667 +k=1"+at+ar+_+k+o+e,1,i+" +lat_0=-45.86151336111111 +lon_0=170.2825891111111"+tm+at+ar+_+k+o+e,1,i+" +lat_0=-46.60000961111111 +lon_0=168.342872 +k=1 +x_0=300002.66 +y_0=699999.58"+_+k+o+e,26,u+Pc+G+_+k+o+e,1,u+_d+G+_+k+o+e,1,u+Bp+G+_+k+o+e,31,i+" +lat_0=-39 +lon_0=175.5 +k=1 +x_0=274319.5243848086 +y_0=365759.3658464114"+_+k+D_+e,1,i+LS+" +lon_0=171.5 +k=1 +x_0=457199.2073080143 +y_0=457199.2073080143"+_+k+D_+e,99,i+Eo+" +lon_0=-4.666666666666667 +k=1"+Z+p+Aa+ri+Mt+Iy+o+e,1,i+Eo+" +lon_0=-2.333333333333333 +k=1"+Z+p+Aa+ri+Mt+Iy+o+e,1,i+Eo+ta+" +k=1"+Z+p+Aa+ri+Mt+Iy+o+e,1,i+Eo+" +lon_0=2.5 +k=1"+Z+p+Aa+ri+Mt+Iy+o+e,1,i+Eo+rw+" +k=1"+Z+p+Aa+ri+Mt+Iy+o+e,1,i+Eo+" +lon_0=10.16666666666667 +k=1"+Z+p+Aa+ri+Mt+Iy+o+e,1,i+Eo+" +lon_0=14.16666666666667 +k=1"+Z+p+Aa+ri+Mt+Iy+o+e,1,i+Eo+" +lon_0=18.33333333333333 +k=1"+Z+p+Aa+ri+Mt+Iy+o+e,31,u+ju+_+Ql+o+e,64,i+we+Gv+" +k=1 +x_0=180.598 +y_0=-86.98999999999999"+_+Ql+o+e,7,l+Tp+Op+" +lon_0=5.399999999999999 +k_0=0.99950908"+m+ka+" +a=6376523"+xg+_S+o+e,61,l+Tp+Op+ta+" +k_0=0.999877341"+E+Ka+vt+he+Ie+Ac+o+e,1,l+" +lat_1=46.8 +lat_0=46.8"+ta+" +k_0=0.99987742"+E+Ka+vt+he+Ie+Ac+o+e,1,l+ek+nk+ta+" +k_0=0.999877499"+E+Ka+vt+he+Ie+Ac+o+e,1,l+rk+ik+ta+" +k_0=0.99994471 +x_0=234.358 +y_0=185861.369"+vt+he+Ie+Ac+o+e,7,l+Tp+Op+ta+" +k_0=0.999877341"+E+$_+vt+he+Ie+Ac+o+e,1,l+" +lat_1=46.8 +lat_0=46.8"+ta+" +k_0=0.99987742"+E+" +y_0=2200000"+vt+he+Ie+Ac+o+e,1,l+ek+nk+ta+" +k_0=0.999877499"+E+" +y_0=3200000"+vt+he+Ie+Ac+o+e,1,l+rk+ik+ta+" +k_0=0.99994471 +x_0=234.358 +y_0=4185861.369"+vt+he+Ie+Ac+o+e,126,i+" +lat_0=49 +lon_0=-2 +k=0.9996012717"+V+" +y_0=-100000"+Vp+Cc+o+e,491,Ln+Uh+Gh+vg+" +y_0=126867.909"+id+od+fr+o+e,1,i+Uh+Gh+" +k=1"+vg+" +y_0=1126867.909"+id+od+fr+o+e,1,Ln+Uh+Gh+vg+" +y_0=1126867.909"+id+od+fr+o+e,39,u+Yl+G+vt+he+M_+o+e,116,u+cf+G+r+n+o+e,1,u+ff+G+r+n+o+e,1,u+Qf+G+r+n+o+e,1,u+hf+G+r+n+o+e,1,u+Kf+G+r+n+o+e,1,u+vp+G+r+n+o+e,1,u+kd+G+r+n+o+e,1,u+Dp+G+r+n+o+e,1,u+Jg+G+r+n+o+e,1,u+Ly+G+r+n+o+e,1,u+Pc+G+r+n+o+e,46,i+f+As+" +k=1"+ur+p+d+s+o+e,1,i+f+ea+" +k=1"+Si+p+d+s+o+e,1,i+f+Za+" +k=1"+Cu+p+d+s+o+e,1,i+f+Wh+" +k=1"+Xa+p+d+s+o+e,1,i+f+eu+" +k=1"+Kc+p+d+s+o+e,1,i+f+qp+" +k=1"+Yc+p+d+s+o+e,1,i+f+Ig+" +k=1"+rc+p+d+s+o+e,1,i+f+Wm+" +k=1"+Su+p+d+s+o+e,1,i+f+Rg+" +k=1"+ic+p+d+s+o+e,1,i+f+na+" +k=1"+aa+p+d+s+o+e,1,i+f+ra+" +k=1"+Bs+p+d+s+o+e,1,i+f+ga+" +k=1"+Ia+p+d+s+o+e,1,i+f+ia+" +k=1"+Ra+p+d+s+o+e,1,i+f+oa+" +k=1"+Ol+p+d+s+o+e,1,i+f+oi+" +k=1"+Pa+p+d+s+o+e,1,i+f+Go+" +k=1"+La+p+d+s+o+e,1,i+f+To+" +k=1"+la+p+d+s+o+e,1,i+f+Ro+" +k=1"+ja+p+d+s+o+e,1,i+f+wi+" +k=1"+ua+p+d+s+o+e,1,i+f+Oo+" +k=1"+Na+p+d+s+o+e,1,i+f+rm+" +k=1"+oc+p+d+s+o+e,1,i+f+rp+" +k=1"+Ba+p+d+s+o+e,1,i+f+td+" +k=1"+Da+p+d+s+o+e,1,i+f+im+" +k=1"+Fa+p+d+s+o+e,1,i+f+ed+" +k=1"+Ua+p+d+s+o+e,1,i+f+hc+" +k=1"+Ds+p+d+s+o+e,1,i+f+Gu+" +k=1"+il+p+d+s+o+e,1,i+f+zu+" +k=1"+ys+p+d+s+o+e,1,i+f+fc+" +k=1"+ol+p+d+s+o+e,168,i+" +lat_0=24.45"+aw+bu+R+ka+_+Dm+o+e,391,us+ok+Qk+" +k=0.9999079"+Z+p+M+Do+o+e,1,us+ok+Qk+" +k=0.9999079 +x_0=155000 +y_0=463000"+M+Do+o+e,109,Nv+f+rd+nc+jt+Y+Nt+o+e,67,u+Ga+Y+Nt+o+e,1,u+wa+Y+Nt+o+e,1,u+Us+Y+Nt+o+e,1,u+za+Y+Nt+o+e,1,u+Ml+Y+Nt+o+e,15,u+wl+G+Y+Nt+o+e,1,u+Ga+G+Y+Nt+o+e,1,u+wa+G+Y+Nt+o+e,1,u+Us+G+Y+Nt+o+e,1,u+za+G+Y+Nt+o+e,1,u+Ml+G+Y+Nt+o+e,1,u+Lc+G+Y+Nt+o+e,1,u+Md+G+Y+Nt+o+e,1,u+vd+G+Y+Nt+o+e,25,u+Us+G+_+md+o+e,1,u+za+G+_+md+o+e,112,u+Bu+G+zs+ze+o+e,38,i+sm+" +lon_0=11 +k=1"+Z+p+Ms+zs+ze+$o+e,2,i+sm+" +lon_0=13 +k=1"+Z+p+Ms+zs+ze+$o+e,2,i+sm+Ss+" +k=1"+Z+p+Ms+zs+ze+$o+e,2,i+sm+bv+" +k=1"+Z+p+Ms+zs+ze+$o+e,2,i+sm+Og+" +k=1"+Z+p+Ms+zs+ze+$o+e,2,i+sm+As+" +k=1"+Z+p+Ms+zs+ze+$o+e,2,i+sm+jy+" +k=1"+Z+p+Ms+zs+ze+$o+e,2,i+sm+Pg+" +k=1"+Z+p+Ms+zs+ze+$o+e,317,gn+" +lat_0=-18.9 +lonc=44.10000000000001 +alpha=18.9"+ai+V+hn+" +gamma=18.9"+_+qs+Ac+o+e,36,u+lu+G+_+qs+o+e,1,u+Kl+G+_+qs+o+e,110,u+ff+vc+Wo+o+e,1,u+Qf+vc+Wo+o+e,21,gn+ig+oS+Pp+om+" +x_0=590476.8714630401 +y_0=442857.653094361"+gl+vc+Wo+" +to_meter=20.11676512155263"+e,1,gn+ig+oS+Pp+om+" +x_0=590476.8727431979 +y_0=442857.6545573985"+gl+vc+Wo+" +to_meter=0.3047994715386762"+e,1,gn+ig+oS+Pp+om+" +x_0=590476.87 +y_0=442857.65"+gl+vc+Wo+o+e,28,i+lk+" +lon_0=-8 +k=1"+R+qu+Vp+Se+o+e,1,i+lk+" +lon_0=-8 +k=1.000035"+R+qu+hp+Se+o+e,1,i+lk+" +lon_0=-8 +k=1.000035"+R+qu+hp+Se+o+e,258,i+Zp+rM+x+Z+p+M+I+o+e,1,i+Zp+$f+x+Z+p+M+I+o+e,1,i+es+kp+x+Z+p+M+I+o+e,1,i+Zp+tv+x+Z+p+M+I+o+e,1,i+es+Sp+x+Z+p+M+I+o+e,1,i+es+gy+x+Z+p+M+I+o+e,1,i+es+Mp+x+Z+p+M+I+o+e,1,i+es+iM+x+Z+p+M+I+o+e,1,i+es+Ap+x+Z+p+M+I+o+e,1,i+jo+Ep+x+Z+p+M+I+o+e,1,i+hl+dS+x+Z+p+M+I+o+e,1,i+hl+pS+x+Z+p+M+I+o+e,1,i+hl+mS+x+Z+p+M+I+o+e,1,i+el+" +lon_0=142"+x+Z+p+M+I+o+e,1,i+el+am+x+Z+p+M+I+o+e,1,i+el+" +lon_0=124"+x+Z+p+M+I+o+e,1,i+el+$f+x+Z+p+M+I+o+e,1,i+" +lat_0=20"+gy+x+Z+p+M+I+o+e,1,i+el+kS+x+Z+p+M+I+o+e,21,Ln+iw+Fv+" +x_0=86501.46392051999"+xM+xi+ki+Vl+tw+e,139,u+Kl+Cs+o+e,1,u+lf+Cs+o+e,151,l+" +lat_1=36"+es+xy+jm+m+ka+vt+he+Fl+o+e,1,l+Ky+Yy+xy+fd+m+ka+vt+he+Fl+o+e,1,l+" +lat_1=36"+es+xy+jm+m+ka+vt+he+o+e,1,l+Ky+Yy+xy+fd+m+ka+vt+he+o+e,235,u+ju+T+Ot+o+e,1,u+gp+T+Ot+o+e,1,u+Em+T+Ot+o+e,1,u+Yl+T+Ot+o+e,59,l+" +lat_1=36"+es+xy+jm+" +x_0=500135 +y_0=300090"+T+Ot+o+e,1,l+Ky+Yy+xy+fd+" +x_0=500135 +y_0=300090"+T+Ot+o+e,236,u+uu+vt+he+o+e,93,u+za+_+Zs+o+e,33,i+f+rd+pt+m+p+_+Zs+o+e,16,i+f+$b+pt+m+p+_+Zs+o+e,1,i+f+$b+x+m+p+_+Zs+o+e,80,i+f+Bg+" +k=1"+Z+si+M+Vt+kc+o+e,1,i+f+Um+" +k=1"+Z+si+M+Vt+kc+o+e,1,i+f+fS+" +k=1"+Z+si+M+Vt+kc+o+e,1,i+f+Lp+" +k=1"+Z+si+M+J+o+e,1,i+f+yl+" +k=1"+Z+si+M+J+o+e,1,i+f+Ip+" +k=1"+Z+si+M+J+o+e,1,i+f+Lp+" +k=1"+Ne+si+M+J+o+e,1,i+f+yl+" +k=1 +x_0=450000"+si+M+J+o+e,1,i+f+Ip+" +k=1"+vk+si+M+J+o+e,22,i+f+Bg+" +k=1"+Z+p+M+Vt+kc+o+e,1,i+f+Um+" +k=1"+Z+p+M+Vt+kc+o+e,1,i+f+fS+" +k=1"+Z+p+M+Vt+kc+o+e,1,i+f+Lp+" +k=1"+Ne+p+M+J+o+e,1,i+f+yl+" +k=1 +x_0=450000"+p+M+J+o+e,1,i+f+Ip+" +k=1"+vk+p+M+J+o+e,1,l+Zh+ud+" +lat_0=47.5"+yl+V+Tl+M+J+o+e,1,i+f+Bg+" +k=1"+Ne+p+M+Vt+kc+o+e,1,i+f+Um+" +k=1 +x_0=450000"+p+M+Vt+kc+o+e,1,i+f+fS+" +k=1"+vk+p+M+Vt+kc+o+e,10,l+Mh+Ah+Oa+" +lon_0=4.356939722222222 +x_0=150000.01256 +y_0=5400088.4378"+_+is+o+e,70,l+" +lat_1=51.16666723333333 +lat_2=49.8333339"+Oa+" +lon_0=4.367486666666666 +x_0=150000.013 +y_0=5400088.438"+_+is+o+e,96,i+f+bS+" +k=1"+On+p+M+et+o+e,1,i+f+Nu+" +k=1"+Be+p+M+et+o+e,1,i+f+Wa+" +k=1"+ur+p+M+et+o+e,1,i+f+Ss+" +k=1"+Si+p+M+et+o+e,59,u+uu+vt+he+gd+o+e,1,u+ju+vt+he+gd+o+e,71,us+" +lat_0=45.9 +lon_0=25.39246588888889 +k=0.9996667"+m+Tt+_+Fm+o+e,238,u+lu+N+Qc+o+e,1,u+Kl+N+Qc+o+e,62,i+f+Ny+" +k=1"+m+p+r+cy+o+e,64,u+bd+r+n+o+e,1,u+wd+r+n+o+e,1,u+xd+r+n+o+e,1,u+Sd+r+n+o+e,1,u+Zf+r+n+o+e,1,u+Wf+r+n+o+e,1,u+wl+r+n+o+e,1,u+Ga+r+n+o+e,1,u+wa+r+n+o+e,1,u+Us+r+n+o+e,1,u+za+r+n+o+e,1,u+Ml+r+n+o+e,1,u+wl+G+r+n+o+e,1,u+Ga+G+r+n+o+e,1,u+wa+G+r+n+o+e,1,u+Us+G+r+n+o+e,1,u+za+G+r+n+o+e,1,u+Ml+G+r+n+o+e,1,u+Lc+G+r+n+o+e,1,u+Md+G+r+n+o+e,1,u+vd+G+r+n+o+e,1,u+wl+r+n+o+e,1,u+Ga+r+n+o+e,1,u+wa+r+n+o+e,1,u+Us+r+n+o+e,1,u+za+r+n+o+e,1,u+Ml+r+n+o+e,1,u+wl+G+r+n+o+e,1,u+Ga+G+r+n+o+e,1,u+wa+G+r+n+o+e,1,u+Us+G+r+n+o+e,1,u+za+G+r+n+o+e,1,u+Ml+G+r+n+o+e,1,u+Lc+G+r+n+o+e,1,u+Md+G+r+n+o+e,1,u+vd+G+r+n+o+e,1,l+" +lat_1=48.71666666666667 +lat_2=47.85"+fl+rl+A+p+S+h+e,1,l+" +lat_1=47.88333333333333 +lat_2=46.45 +lat_0=45.83333333333334"+rl+A+p+S+h+e,1,l+" +lat_1=46.4 +lat_2=44.86666666666667"+hl+rl+A+p+S+h+e,2,l+" +lat_1=41.85 +lat_2=42.81666666666667 +lat_0=41.33333333333334"+pn+A+p+S+h+e,1,l+" +lat_1=40.28333333333333"+Or+we+" +lon_0=-99.5"+A+p+S+h+e,1,i+fn+$n+x+P+p+S+h+e,1,i+fn+tr+x+P+p+S+h+e,1,i+fn+er+x+P+p+S+h+e,1,i+Lo+nr+dt+P+p+S+h+e,1,i+Xt+" +lon_0=-74.66666666666667"+li+A+p+S+h+e,1,i+Re+zn+Ma+P+p+S+h+e,1,i+Re+jl+x+P+p+S+h+e,1,i+Re+Hn+Nl+P+p+S+h+e,1,i+jo+" +lon_0=-74.33333333333333"+dt+P+p+S+h+e,1,i+jo+qn+Ct+P+p+S+h+e,1,i+jo+Zn+Ct+P+p+S+h+e,2,l+" +lat_1=34.33333333333334 +lat_2=36.16666666666666"+Jh+Jf+A+p+S+h+e,1,l+" +lat_1=47.43333333333333"+sk+fl+yi+A+p+S+h+e,1,l+" +lat_1=46.18333333333333 +lat_2=47.48333333333333"+Ee+yi+A+p+S+h+e,1,l+" +lat_1=40.43333333333333 +lat_2=41.7"+we+ci+A+p+S+h+e,1,l+" +lat_1=38.73333333333333 +lat_2=40.03333333333333"+Tn+ci+A+p+S+h+e,1,l+" +lat_1=35.56666666666667"+Ur+qm+Co+A+p+S+h+e,1,l+" +lat_1=33.93333333333333 +lat_2=35.23333333333333"+Rr+Co+A+p+S+h+e,1,l+" +lat_1=44.33333333333334"+ud+ut+lt+A+p+S+h+e,1,l+" +lat_1=42.33333333333334 +lat_2=44"+z+lt+A+p+S+h+e,1,l+" +lat_1=40.88333333333333 +lat_2=41.95"+Jt+_i+A+p+S+h+e,2,i+ti+Vo+" +k=0.9999938"+P+p+S+h+e,1,l+" +lat_1=33.76666666666667 +lat_2=34.96666666666667"+Zp+dn+A+p+S+h+e,2,l+" +lat_1=32.33333333333334 +lat_2=33.66666666666666"+Br+dn+A+p+S+h+e,1,l+" +lat_1=44.41666666666666 +lat_2=45.68333333333333"+ht+pn+A+p+S+h+e,1,l+" +lat_1=42.83333333333334 +lat_2=44.4"+ei+Pt+A+p+S+h+e,2,l+mM+" +lat_2=36.18333333333333"+Zm+Au+A+p+S+h+e,1,l+" +lat_1=32.13333333333333 +lat_2=33.96666666666667"+Dr+" +lon_0=-97.5"+A+p+S+h+e,1,l+" +lat_1=30.11666666666667 +lat_2=31.88333333333333"+kn+Pt+A+p+S+h+e,1,l+" +lat_1=28.38333333333333 +lat_2=30.28333333333333"+Fr+yu+A+p+S+h+e,1,l+" +lat_1=26.16666666666667 +lat_2=27.83333333333333"+Sn+yn+A+p+S+h+e,1,l+" +lat_1=40.71666666666667 +lat_2=41.78333333333333"+Ue+oe+A+p+S+h+e,1,l+" +lat_1=39.01666666666667 +lat_2=40.65"+mt+oe+A+p+S+h+e,1,l+" +lat_1=37.21666666666667 +lat_2=38.35"+L+oe+A+p+S+h+e,1,i+Lo+ec+Bl+P+p+S+h+e,1,l+" +lat_1=38.03333333333333 +lat_2=39.2"+$+Qo+A+p+S+h+e,1,l+Ir+" +lat_2=37.96666666666667"+tt+Qo+A+p+S+h+e,1,l+" +lat_1=47.5"+sk+fl+Wn+A+p+S+h+e,1,l+" +lat_1=45.83333333333334 +lat_2=47.33333333333334"+Gr+lt+A+p+S+h+e,1,l+" +lat_1=39 +lat_2=40.25"+wf+ms+A+p+S+h+e,1,l+" +lat_1=37.48333333333333 +lat_2=38.88333333333333"+Vm+dn+A+p+S+h+e,1,l+" +lat_1=45.56666666666667 +lat_2=46.76666666666667"+zr+He+A+p+S+h+e,1,l+" +lat_1=44.25"+Sa+ht+He+A+p+S+h+e,1,l+" +lat_1=42.73333333333333 +lat_2=44.06666666666667"+Hp+He+A+p+S+h+e,1,i+qh+rr+Bt+P+p+S+h+e,1,i+qh+ir+Bt+P+p+S+h+e,1,i+qh+Dl+Bt+P+p+S+h+e,1,i+qh+or+Bt+P+p+S+h+e,6,i+f+yu+pt+B+p+S+h+e,1,i+f+fy+pt+B+p+S+h+e,1,i+f+gu+pt+B+p+S+h+e,1,i+f+dn+pt+B+p+S+h+e,14,i+f+" +lon_0=-53"+x+At+p+S+o+e,1,i+f+jS+x+At+p+S+o+e,1,i+f+K_+x+At+p+S+o+e,1,i+f+Dg+x+At+p+S+o+e,1,i+f+Fg+x+At+p+S+o+e,1,i+f+Y_+x+At+p+S+o+e,12,l+wv+ud+hl+Ys+Z+p+S+o+e,1,l+Je+$e+Sn+Pe+A+p+S+h+e,1,l+Zh+Lg+Jc+rl+E+p+r+n+o+e,4,l+nu+xu+go+pn+m+p+r+n+o+e,3,i+fn+$n+x+R+nv+r+n+o+e,1,i+fn+tr+x+m+ba+r+n+o+e,1,i+fn+er+x+vn+tc+r+n+o+e,1,i+Lo+nr+dt+at+p+r+n+o+e,1,i+Xt+Os+x+Ne+p+r+n+o+e,1,i+Re+zn+Ma+Od+p+r+n+o+e,1,i+Re+jl+x+m+p+r+n+o+e,1,i+Re+Hn+Nl+ck+p+r+n+o+e,1,i+Xt+Os+x+Ne+p+r+n+o+e,1,i+jo+qn+Ct+qe+p+r+n+o+e,1,i+jo+Zn+Ct+hg+p+r+n+o+e,1,l+Pr+Lr+Jt+np+at+p+r+n+o+e,1,l+Bi+Di+Jh+Jf+ey+p+r+n+o+e,1,l+ie+Fi+fl+yi+E+p+r+n+o+e,1,l+Ui+Gi+Ee+yi+E+p+r+n+o+e,1,l+Dd+yo+we+ci+E+p+r+n+o+e,1,l+_o+vo+Tn+ci+E+p+r+n+o+e,1,l+Ir+zi+qm+Co+E+p+r+n+o+e,1,l+Hi+qi+Rr+Co+E+p+r+n+o+e,1,l+Gp+wn+ut+lt+On+p+r+n+o+e,1,l+zp+xn+z+lt+bt+p+r+n+o+e,1,l+$c+Zi+Jt+_i+E+p+r+n+o+e,1,l+jr+Nr+X+_i+E+p+r+n+o+e,1,i+ti+Vo+sc+ye+p+r+n+o+e,3,l+Wi+Pd+Br+dn+Ld+p+r+n+o+e,1,l+bo+wo+ht+pn+E+p+r+n+o+e,1,l+Fd+xo+ei+Pt+E+p+r+n+o+e,1,l+Vi+tf+$t+Vc+E+p+r+n+o+e,1,l+Qi+ef+Zm+Au+R+st+r+n+o+e,1,l+Ki+Yi+Dr+yn+E+In+r+n+o+e,1,l+Xi+Ji+kn+Pt+pi+Io+r+n+o+e,1,l+$i+to+Fr+yu+E+tc+r+n+o+e,1,l+Je+$e+Sn+yn+at+Tu+r+n+o+e,1,l+kt+tn+Ue+oe+m+st+r+n+o+e,1,l+zl+en+mt+oe+m+In+r+n+o+e,1,l+Hl+nn+L+oe+m+Io+r+n+o+e,1,i+Lo+ec+Bl+m+p+r+n+o+e,1,l+Id+eo+$+Qo+Be+In+r+n+o+e,1,l+Yt+Ur+tt+Qo+Be+st+r+n+o+e,1,l+ie+Rd+fl+Wn+m+p+r+n+o+e,1,l+no+ro+Gr+lt+m+p+r+n+o+e,1,l+of+jg+wf+ms+E+p+r+n+o+e,1,l+ko+So+Vm+dn+E+p+r+n+o+e,1,l+io+oo+zr+He+E+p+r+n+o+e,1,l+cu+nf+ht+He+E+p+r+n+o+e,1,l+so+ao+Hp+He+E+p+r+n+o+e,1,i+Ke+rr+Ct+R+p+r+n+o+e,1,i+Ke+ir+Ct+V+ni+r+n+o+e,1,i+Ke+Dl+Ct+E+p+r+n+o+e,1,i+Ke+or+Ct+vn+ni+r+n+o+e,3,l+cs+fs+ds+Ho+R+Ka+r+n+o+e,3,i+f+yu+pt+B+p+r+n+h+e,1,i+f+fy+pt+B+p+r+n+h+e,1,i+f+gu+pt+B+p+r+n+h+e,1,i+f+dn+pt+B+p+r+n+h+e,14,i+f+" +lon_0=-53"+x+At+p+r+n+o+e,1,i+f+jS+x+At+p+r+n+o+e,1,i+f+K_+x+At+p+r+n+o+e,1,i+f+Dg+x+At+p+r+n+o+e,1,i+f+Fg+x+At+p+r+n+o+e,1,i+f+Y_+x+At+p+r+n+o+e,1,i+f+Ya+x+At+p+r+n+o+e,1,i+f+X_+x+At+p+r+n+o+e,1,i+f+J_+x+At+p+r+n+o+e,1,i+f+ms+x+At+p+r+n+o+e,1,i+f+ci+x+At+p+r+n+o+e,1,i+f+dn+x+At+p+r+n+o+e,1,i+f+Xf+x+At+p+r+n+o+e,1,i+f+gu+x+At+p+r+n+o+e,1,i+f+He+x+At+p+r+n+o+e,1,i+f+fy+x+At+p+r+n+o+e,1,i+f+$d+x+At+p+r+n+o+e,1,l+wv+ud+hl+Ys+Z+p+r+n+o+e,1,l+Je+$e+" +lat_0=25.5"+Pe+xe+p+r+n+o+e,2,u+Oy+b+g+o+e,1,u+F_+b+g+o+e,1,u+ak+b+g+o+e,1,u+z_+b+g+o+e,1,u+Cg+b+g+o+e,1,u+ly+b+g+o+e,1,u+Tg+b+g+o+e,1,u+U_+b+g+o+e,1,u+G_+b+g+o+e,1,u+Cm+b+g+o+e,1,u+bd+b+g+o+e,1,u+wd+b+g+o+e,1,u+xd+b+g+o+e,1,u+Sd+b+g+o+e,1,u+Zf+b+g+o+e,1,u+Wf+b+g+o+e,1,u+wl+b+g+o+e,1,u+Ga+b+g+o+e,1,u+wa+b+g+o+e,1,u+Us+b+g+o+e,1,u+za+b+g+o+e,1,u+Ml+b+g+o+e,1,u+Lc+b+g+o+e,1,u+Md+b+g+o+e,1,u+vd+b+g+o+e,1,u+_p+b+g+o+e,1,u+Py+b+g+o+e,1,u+uu+b+g+o+e,1,u+ju+b+g+o+e,1,u+gp+b+g+o+e,1,u+Em+b+g+o+e,1,u+Yl+b+g+o+e,1,u+Bu+b+g+o+e,1,u+Vf+b+g+o+e,1,u+mh+b+g+o+e,1,u+uf+b+g+o+e,1,u+Du+b+g+o+e,1,u+lu+b+g+o+e,1,u+Kl+b+g+o+e,1,u+lf+b+g+o+e,1,u+Kg+b+g+o+e,1,u+Yg+b+g+o+e,1,u+Ry+b+g+o+e,1,u+V_+b+g+o+e,1,u+Q_+b+g+o+e,1,u+Tm+b+g+o+e,1,u+Ad+b+g+o+e,1,u+cf+b+g+o+e,1,u+ff+b+g+o+e,1,u+Qf+b+g+o+e,1,u+hf+b+g+o+e,1,u+Kf+b+g+o+e,1,u+vp+b+g+o+e,1,u+kd+b+g+o+e,1,u+Dp+b+g+o+e,1,u+Jg+b+g+o+e,1,u+Ly+b+g+o+e,1,u+Pc+b+g+o+e,1,u+_d+b+g+o+e,1,u+Bp+b+g+o+e,41,u+Oy+G+b+g+o+e,1,u+F_+G+b+g+o+e,1,u+ak+G+b+g+o+e,1,u+z_+G+b+g+o+e,1,u+Cg+G+b+g+o+e,1,u+ly+G+b+g+o+e,1,u+Tg+G+b+g+o+e,1,u+U_+G+b+g+o+e,1,u+G_+G+b+g+o+e,1,u+Cm+G+b+g+o+e,1,u+bd+G+b+g+o+e,1,u+wd+G+b+g+o+e,1,u+xd+G+b+g+o+e,1,u+Sd+G+b+g+o+e,1,u+Zf+G+b+g+o+e,1,u+Wf+G+b+g+o+e,1,u+wl+G+b+g+o+e,1,u+Ga+G+b+g+o+e,1,u+wa+G+b+g+o+e,1,u+Us+G+b+g+o+e,1,u+za+G+b+g+o+e,1,u+Ml+G+b+g+o+e,1,u+Lc+G+b+g+o+e,1,u+Md+G+b+g+o+e,1,u+vd+G+b+g+o+e,1,u+_p+G+b+g+o+e,1,u+Py+G+b+g+o+e,1,u+uu+G+b+g+o+e,1,u+ju+G+b+g+o+e,1,u+gp+G+b+g+o+e,1,u+Em+G+b+g+o+e,1,u+Yl+G+b+g+o+e,1,u+Bu+G+b+g+o+e,1,u+Vf+G+b+g+o+e,1,u+mh+G+b+g+o+e,1,u+uf+G+b+g+o+e,1,u+Du+G+b+g+o+e,1,u+lu+G+b+g+o+e,1,u+Kl+G+b+g+o+e,1,u+lf+G+b+g+o+e,1,u+Kg+G+b+g+o+e,1,u+Yg+G+b+g+o+e,1,u+Ry+G+b+g+o+e,1,u+V_+G+b+g+o+e,1,u+Q_+G+b+g+o+e,1,u+Tm+G+b+g+o+e,1,u+Ad+G+b+g+o+e,1,u+cf+G+b+g+o+e,1,u+ff+G+b+g+o+e,1,u+Qf+G+b+g+o+e,1,u+hf+G+b+g+o+e,1,u+Kf+G+b+g+o+e,1,u+vp+G+b+g+o+e,1,u+kd+G+b+g+o+e,1,u+Dp+G+b+g+o+e,1,u+Jg+G+b+g+o+e,1,u+Ly+G+b+g+o+e,1,u+Pc+G+b+g+o+e,1,u+_d+G+b+g+o+e,1,u+Bp+G+b+g+o+e,41,u+Oy+b+y+o+e,1,u+F_+b+y+o+e,1,u+ak+b+y+o+e,1,u+z_+b+y+o+e,1,u+Cg+b+y+o+e,1,u+ly+b+y+o+e,1,u+Tg+b+y+o+e,1,u+U_+b+y+o+e,1,u+G_+b+y+o+e,1,u+Cm+b+y+o+e,1,u+bd+b+y+o+e,1,u+wd+b+y+o+e,1,u+xd+b+y+o+e,1,u+Sd+b+y+o+e,1,u+Zf+b+y+o+e,1,u+Wf+b+y+o+e,1,u+wl+b+y+o+e,1,u+Ga+b+y+o+e,1,u+wa+b+y+o+e,1,u+Us+b+y+o+e,1,u+za+b+y+o+e,1,u+Ml+b+y+o+e,1,u+Lc+b+y+o+e,1,u+Md+b+y+o+e,1,u+vd+b+y+o+e,1,u+_p+b+y+o+e,1,u+Py+b+y+o+e,1,u+uu+b+y+o+e,1,u+ju+b+y+o+e,1,u+gp+b+y+o+e,1,u+Em+b+y+o+e,1,u+Yl+b+y+o+e,1,u+Bu+b+y+o+e,1,u+Vf+b+y+o+e,1,u+mh+b+y+o+e,1,u+uf+b+y+o+e,1,u+Du+b+y+o+e,1,u+lu+b+y+o+e,1,u+Kl+b+y+o+e,1,u+lf+b+y+o+e,1,u+Kg+b+y+o+e,1,u+Yg+b+y+o+e,1,u+Ry+b+y+o+e,1,u+V_+b+y+o+e,1,u+Q_+b+y+o+e,1,u+Tm+b+y+o+e,1,u+Ad+b+y+o+e,1,u+cf+b+y+o+e,1,u+ff+b+y+o+e,1,u+Qf+b+y+o+e,1,u+hf+b+y+o+e,1,u+Kf+b+y+o+e,1,u+vp+b+y+o+e,1,u+kd+b+y+o+e,1,u+Dp+b+y+o+e,1,u+Jg+b+y+o+e,1,u+Ly+b+y+o+e,1,u+Pc+b+y+o+e,1,u+_d+b+y+o+e,1,u+Bp+b+y+o+e,41,u+Oy+G+b+y+o+e,1,u+F_+G+b+y+o+e,1,u+ak+G+b+y+o+e,1,u+z_+G+b+y+o+e,1,u+Cg+G+b+y+o+e,1,u+ly+G+b+y+o+e,1,u+Tg+G+b+y+o+e,1,u+U_+G+b+y+o+e,1,u+G_+G+b+y+o+e,1,u+Cm+G+b+y+o+e,1,u+bd+G+b+y+o+e,1,u+wd+G+b+y+o+e,1,u+xd+G+b+y+o+e,1,u+Sd+G+b+y+o+e,1,u+Zf+G+b+y+o+e,1,u+Wf+G+b+y+o+e,1,u+wl+G+b+y+o+e,1,u+Ga+G+b+y+o+e,1,u+wa+G+b+y+o+e,1,u+Us+G+b+y+o+e,1,u+za+G+b+y+o+e,1,u+Ml+G+b+y+o+e,1,u+Lc+G+b+y+o+e,1,u+Md+G+b+y+o+e,1,u+vd+G+b+y+o+e,1,u+_p+G+b+y+o+e,1,u+Py+G+b+y+o+e,1,u+uu+G+b+y+o+e,1,u+ju+G+b+y+o+e,1,u+gp+G+b+y+o+e,1,u+Em+G+b+y+o+e,1,u+Yl+G+b+y+o+e,1,u+Bu+G+b+y+o+e,1,u+Vf+G+b+y+o+e,1,u+mh+G+b+y+o+e,1,u+uf+G+b+y+o+e,1,u+Du+G+b+y+o+e,1,u+lu+G+b+y+o+e,1,u+Kl+G+b+y+o+e,1,u+lf+G+b+y+o+e,1,u+Kg+G+b+y+o+e,1,u+Yg+G+b+y+o+e,1,u+Ry+G+b+y+o+e,1,u+V_+G+b+y+o+e,1,u+Q_+G+b+y+o+e,1,u+Tm+G+b+y+o+e,1,u+Ad+G+b+y+o+e,1,u+cf+G+b+y+o+e,1,u+ff+G+b+y+o+e,1,u+Qf+G+b+y+o+e,1,u+hf+G+b+y+o+e,1,u+Kf+G+b+y+o+e,1,u+vp+G+b+y+o+e,1,u+kd+G+b+y+o+e,1,u+Dp+G+b+y+o+e,1,u+Jg+G+b+y+o+e,1,u+Ly+G+b+y+o+e,1,u+Pc+G+b+y+o+e,1,u+_d+G+b+y+o+e,1,u+Bp+G+b+y+o+e,41,u+Oy+v+o+e,1,u+F_+v+o+e,1,u+ak+v+o+e,1,u+z_+v+o+e,1,u+Cg+v+o+e,1,u+ly+v+o+e,1,u+Tg+v+o+e,1,u+U_+v+o+e,1,u+G_+v+o+e,1,u+Cm+v+o+e,1,u+bd+v+o+e,1,u+wd+v+o+e,1,u+xd+v+o+e,1,u+Sd+v+o+e,1,u+Zf+v+o+e,1,u+Wf+v+o+e,1,u+wl+v+o+e,1,u+Ga+v+o+e,1,u+wa+v+o+e,1,u+Us+v+o+e,1,u+za+v+o+e,1,u+Ml+v+o+e,1,u+Lc+v+o+e,1,u+Md+v+o+e,1,u+vd+v+o+e,1,u+_p+v+o+e,1,u+Py+v+o+e,1,u+uu+v+o+e,1,u+ju+v+o+e,1,u+gp+v+o+e,1,u+Em+v+o+e,1,u+Yl+v+o+e,1,u+Bu+v+o+e,1,u+Vf+v+o+e,1,u+mh+v+o+e,1,u+uf+v+o+e,1,u+Du+v+o+e,1,u+lu+v+o+e,1,u+Kl+v+o+e,1,u+lf+v+o+e,1,u+Kg+v+o+e,1,u+Yg+v+o+e,1,u+Ry+v+o+e,1,u+V_+v+o+e,1,u+Q_+v+o+e,1,u+Tm+v+o+e,1,u+Ad+v+o+e,1,u+cf+v+o+e,1,u+ff+v+o+e,1,u+Qf+v+o+e,1,u+hf+v+o+e,1,u+Kf+v+o+e,1,u+vp+v+o+e,1,u+kd+v+o+e,1,u+Dp+v+o+e,1,u+Jg+v+o+e,1,u+Ly+v+o+e,1,u+Pc+v+o+e,1,u+_d+v+o+e,1,u+Bp+v+o+e,1,fe+Oa+lg+ta+Xg+Ae+In+v+o+e,3,i+f+yu+pt+B+p+v+h+e,1,i+f+fy+pt+B+p+v+h+e,1,i+f+gu+pt+B+p+v+h+e,1,i+f+dn+pt+B+p+v+h+e,34,u+Oy+G+v+o+e,1,u+F_+G+v+o+e,1,u+ak+G+v+o+e,1,u+z_+G+v+o+e,1,u+Cg+G+v+o+e,1,u+ly+G+v+o+e,1,u+Tg+G+v+o+e,1,u+U_+G+v+o+e,1,u+G_+G+v+o+e,1,u+Cm+G+v+o+e,1,u+bd+G+v+o+e,1,u+wd+G+v+o+e,1,u+xd+G+v+o+e,1,u+Sd+G+v+o+e,1,u+Zf+G+v+o+e,1,u+Wf+G+v+o+e,1,u+wl+G+v+o+e,1,u+Ga+G+v+o+e,1,u+wa+G+v+o+e,1,u+Us+G+v+o+e,1,u+za+G+v+o+e,1,u+Ml+G+v+o+e,1,u+Lc+G+v+o+e,1,u+Md+G+v+o+e,1,u+vd+G+v+o+e,1,u+_p+G+v+o+e,1,u+Py+G+v+o+e,1,u+uu+G+v+o+e,1,u+ju+G+v+o+e,1,u+gp+G+v+o+e,1,u+Em+G+v+o+e,1,u+Yl+G+v+o+e,1,u+Bu+G+v+o+e,1,u+Vf+G+v+o+e,1,u+mh+G+v+o+e,1,u+uf+G+v+o+e,1,u+Du+G+v+o+e,1,u+lu+G+v+o+e,1,u+Kl+G+v+o+e,1,u+lf+G+v+o+e,1,u+Kg+G+v+o+e,1,u+Yg+G+v+o+e,1,u+Ry+G+v+o+e,1,u+V_+G+v+o+e,1,u+Q_+G+v+o+e,1,u+Tm+G+v+o+e,1,u+Ad+G+v+o+e,1,u+cf+G+v+o+e,1,u+ff+G+v+o+e,1,u+Qf+G+v+o+e,1,u+hf+G+v+o+e,1,u+Kf+G+v+o+e,1,u+vp+G+v+o+e,1,u+kd+G+v+o+e,1,u+Dp+G+v+o+e,1,u+Jg+G+v+o+e,1,u+Ly+G+v+o+e,1,u+Pc+G+v+o+e,1,u+_d+G+v+o+e,1,u+Bp+G+v+o+e,1,fe+F+" +lat_ts=-90"+ta+Xg+Ae+In+v+o+e,5,i+f+Fp+pt+m+jt+v+o+e].reduce(((t,e,n)=>{if(n%2===0){const n=t.prev+e,r="EPSG:"+n;t.defs.push([r]),t.prev=n}else t.defs[t.defs.length-1].push(e);return t}),{defs:[],prev:0}).defs},5192:function(t){function e(t){return t}function n(t,e,n,r,i){return n+r*(i-t)/e}function r(t,e,n,r,i){return n-r*(i-t)/e}function i(t,e,n,r,i){return Math.round(n+r*(i-t)/e)}function o(t,e,n,r,i){return Math.round(n-r*(i-t)/e)}function s([t,s],[a,l],{flip:u,no_range_value:h,no_range_value_strategy:c="highest",round:f=!1}={}){const d=s-t,p=l-a;if(0===d){if("number"===typeof h)return e.bind(null,h);if("highest"===c)return e.bind(null,l);if("lowest"===c)return e.bind(null,a);if("middle"===c){let t=(l-a)/2;return f&&(t=Math.round(t)),e.bind(null,t)}}return u?f?o.bind(null,t,d,l,p):r.bind(null,t,d,l,p):f?i.bind(null,t,d,a,p):n.bind(null,t,d,a,p)}function a(t,...e){return create(e)(t)}const l={_identity:e,_scale:a,_scale_number:n,_scale_and_flip_number:r,_scale_and_round_number:i,_scale_and_flip_and_round_number:o,createScaleFunction:s};t.exports=l,"object"===typeof window&&(window.quickScale=l),"object"===typeof self&&(self.quickScale=l)},65572:function(t,e,n){var r;function i({bbox:t,reproject:e}){const[n,r,i,o]=t,s=e([n,o]),a=e([i,o]),l=e([n,r]),u=e([i,r]),h=[s,a,l,u],c=h.map((t=>t[0])),f=h.map((t=>t[1]));return[Math.min(...c),Math.min(...f),Math.max(...c),Math.max(...f)]}r=function(){return i}.call(e,n,e,t),void 0===r||(t.exports=r),t.exports=i,t.exports["default"]=i,"object"===typeof window&&(window.reprojectBoundingBoxPluggable=i),"object"===typeof self&&(self.reprojectBoundingBoxPluggable=i)},56688:function(t,e,n){var r;const i=n(66056),o=n(74972),s=n(65572);function a({bbox:t,from:e,proj4:n,to:r}){"number"===typeof e&&(e="EPSG:"+e),"number"===typeof r&&(r="EPSG:"+r);const a=[n,o];"object"===typeof window&&window.proj4&&a.push(window.proj4),"object"===typeof self&&self.proj4&&a.push(self.proj4);const l=i(a),u=l(e,r).forward;return s({bbox:t,reproject:u})}"function"!==typeof i&&console.warn("[reproject-bbox] failed to import proj4-merge"),r=function(){return a}.call(e,n,e,t),void 0===r||(t.exports=r),t.exports=a,t.exports["default"]=a,"object"===typeof window&&(window.reprojectBoundingBox=a),"object"===typeof self&&(self.reprojectBoundingBox=a)},69496:function(t,e,n){let r=n(17216);const i=n(38776);"object"===typeof r&&"function"!==typeof r.defs&&"function"===typeof r.default&&(r=r.default),r.defs(i),t.exports=r},88036:function(t,e,n){var r;const i=n(67940);function o(t,{reproject:e}){if("function"!==typeof e)throw new Error("[reproject-geojson] you must specify a reproject function");if("FeatureCollection"===t.type)return{...t,features:t.features.map((t=>o(t,{reproject:e})))};if("Feature"===t.type)return{...t,geometry:o(t.geometry,{reproject:e})};if("LineString"===t.type)return{...t,coordinates:t.coordinates.map((t=>e(t)))};if("MultiLineString"===t.type)return{...t,coordinates:t.coordinates.map((t=>t.map((t=>e(t)))))};if("MultiPoint"===t.type)return{...t,coordinates:t.coordinates.map((t=>e(t)))};if("MultiPolygon"===t.type)return{...t,coordinates:t.coordinates.map((t=>t.map((t=>t.map((t=>e(t)))))))};if("Point"===t.type)return{...t,coordinates:e(t.coordinates)};if("Polygon"===t.type)return{...t,coordinates:t.coordinates.map((t=>t.map((t=>e(t)))))};if(Array.isArray(t)){const n=i(t);if(1===n)return e(t);if(2===n)return t.map((t=>e(t)));if(3===n)return t.map((t=>t.map((t=>e(t)))));if(4===n)return t.map((t=>t.map((t=>t.map((t=>e(t)))))))}return t}r=function(){return o}.call(e,n,e,t),void 0===r||(t.exports=r),t.exports=o,"object"===typeof window&&(window.reprojectGeoJSONPluggable=o),"object"===typeof self&&(self.reprojectGeoJSONPluggable=o)},46696:function(t,e,n){var r;const i=n(69496),o=n(88036);function s(t,{from:e="EPSG:4326",in_place:n=!1,to:r="EPSG:4326"}){return("number"===typeof e||e.match(/^\d+$/))&&(e="EPSG:"+e),("number"===typeof r||r.match(/^\d+$/))&&(r="EPSG:"+r),o(t,{in_place:n,reproject:i(e,r).forward})}r=function(){return s}.call(e,n,e,t),void 0===r||(t.exports=r),t.exports=s,"object"===typeof window&&(window.reprojectGeoJSON=s),"object"===typeof self&&(self.reprojectGeoJSON=s)},48540:function(t,e,n){var r;function i({segments:t,min:e=-1/0,max:n=1/0,debug:r=!1}){if(r&&console.log("[segflip] segs:",t),void 0===t||null===t||Array.isArray(t)&&0===t.length)return r&&console.log("[segflip] segments are empty so return the whole row flipped"),[[e,n]];const i=t.map((([t,e])=>[t-1,e+1])).flat();i.unshift(e),i.push(n),r&&console.log("flattened nums:",i);const o=[];for(let s=1;se||o.push([t,e])}return o}r=function(){return i}.call(e,n,e,t),void 0===r||(t.exports=r),t.exports=i,"object"===typeof window&&(window.segflip=i),"object"===typeof self&&(self.segflip=i)},59512:function(t){t.exports=({bbox:t,container:e,debug:n,origin:r,padding:i,scale:o})=>{n&&console.log("[snap-bbox] starting"),n&&console.log("[snap-bbox] bbox:",t),n&&console.log("[snap-bbox] debug:",n),n&&console.log("[snap-bbox] origin:",r),n&&console.log("[snap-bbox] padding:",i),n&&console.log("[snap-bbox] scale:",o);const[s,a]=r;n&&console.log("[snap-bbox] originX:",s),n&&console.log("[snap-bbox] originY:",a);const[l,u]=i||[0,0];n&&console.log("[snap-bbox] padX:",l),n&&console.log("[snap-bbox] padY:",u);const[h,c]=o;n&&console.log("[snap-bbox] scale_x:",h),n&&console.log("[snap-bbox] scale_y:",c);const f=Math.sign(h),d=Math.sign(c);n&&console.log("[snap-bbox] sign_scale_x:",f),n&&console.log("[snap-bbox] sign_scale_y:",d);const[p,m,g,y]=t;n&&console.log("[snap-bbox] xmin:",p),n&&console.log("[snap-bbox] ymin:",m),n&&console.log("[snap-bbox] xmax:",g),n&&console.log("[snap-bbox] ymax:",y);const _=(p-s)/h,v=(g-s)/h,b=(y-a)/c,w=(m-a)/c;n&&console.log("[snap-bbox] left:",_),n&&console.log("[snap-bbox] right:",v),n&&console.log("[snap-bbox] top:",b),n&&console.log("[snap-bbox] bottom:",w);let x=Math.floor(_)-l,k=Math.ceil(v)+l,S=Math.floor(b)-u,M=Math.ceil(w)+u;if(n&&console.log("[snap-bbox] left_int:",x),n&&console.log("[snap-bbox] right_int:",k),n&&console.log("[snap-bbox] top_int:",S),n&&console.log("[snap-bbox] bottom_int:",M),e){n&&console.log("[snap-bbox] container:",e);const t=(e[0]-s)/h,r=(e[2]-s)/h,i=(e[3]-a)/c,o=(e[1]-a)/c;n&&console.log("[snap-bbox] min_left:",t),n&&console.log("[snap-bbox] max_right:",r),n&&console.log("[snap-bbox] min_top:",i),n&&console.log("[snap-bbox] max_bottom:",o);const l=Math.ceil(t),u=Math.floor(r),f=Math.ceil(i),d=Math.floor(o);n&&console.log("[snap-bbox] min_left_int:",l),n&&console.log("[snap-bbox] max_right_int:",u),n&&console.log("[snap-bbox] min_top_int:",f),n&&console.log("[snap-bbox] max_bottom_int:",d),x=Math.max(x,l),k=Math.min(k,u),S=Math.max(S,f),M=Math.min(M,d),n&&console.log("[snap-bbox] after containment, left_int:",x),n&&console.log("[snap-bbox] after containment, right_int:",k),n&&console.log("[snap-bbox] after containment, top_int:",S),n&&console.log("[snap-bbox] after containment, bottom_int:",M)}const A=[0===x?0:x,0===M?0:M,0===k?0:k,0===S?0:S];n&&console.log("[snap-bbox] bbox_in_grid_cells:",A);const E=[s+x*h,a+M*c,s+k*h,a+S*c];return{bbox_in_coordinate_system:E,bbox_in_grid_cells:A}}},44336:function(t){t.exports=function(t){const e=t.toString();return e.startsWith("326")?"N":e.startsWith("327")?"S":void 0}},90096:function(t,e,n){const r=n(3248),i=n(44336);t.exports=function(t){const e=r(t),n=i(t);return`+proj=utm +zone=${e}${"S"===n?" +south ":" "}+ellps=WGS84 +datum=WGS84 +units=m +no_defs`}},3248:function(t){t.exports=function(t){return Number.parseInt(t.toString().substring(3))}},22288:function(t){t.exports=function(t){const e=t.toString();return e.startsWith("326")||e.startsWith("327")}},52108:function(t){t.exports={1:function({point:t}){const e=this.data,n=t[this.d0v0];return{parent:e,index:n,value:e[n]}},2:function({point:t}){const e=this.data,n=this.m0v0*t[this.d0v0]+this.m0v1*t[this.d0v1];return{parent:e,index:n,value:e[n]}},3:function({point:t}){const e=this.data,n=this.m0v0*t[this.d0v0]+this.m0v1*t[this.d0v1]+this.m0v2*t[this.d0v2];return{parent:e,index:n,value:e[n]}},4:function({point:t}){const e=this.data,n=this.m0v0*t[this.d0v0]+this.m0v1*t[this.d0v1]+this.m0v2*t[this.d0v2]+this.m0v3*t[this.d0v3];return{parent:e,index:n,value:e[n]}},5:function({point:t}){const e=this.data,n=this.m0v0*t[this.d0v0]+this.m0v1*t[this.d0v1]+this.m0v2*t[this.d0v2]+this.m0v3*t[this.d0v3]+this.m0v4*t[this.d0v4];return{parent:e,index:n,value:e[n]}},"1,1":function({point:t}){const e=this.data[t[this.d0v0]],n=t[this.d1v0];return{parent:e,index:n,value:e[n]}},"1,2":function({point:t}){const e=this.data[t[this.d0v0]],n=this.m1v0*t[this.d1v0]+this.m1v1*t[this.d1v1];return{parent:e,index:n,value:e[n]}},"1,3":function({point:t}){const e=this.data[t[this.d0v0]],n=this.m1v0*t[this.d1v0]+this.m1v1*t[this.d1v1]+this.m1v2*t[this.d1v2];return{parent:e,index:n,value:e[n]}},"1,4":function({point:t}){const e=this.data[t[this.d0v0]],n=this.m1v0*t[this.d1v0]+this.m1v1*t[this.d1v1]+this.m1v2*t[this.d1v2]+this.m1v3*t[this.d1v3];return{parent:e,index:n,value:e[n]}},"1,5":function({point:t}){const e=this.data[t[this.d0v0]],n=this.m1v0*t[this.d1v0]+this.m1v1*t[this.d1v1]+this.m1v2*t[this.d1v2]+this.m1v3*t[this.d1v3]+this.m1v4*t[this.d1v4];return{parent:e,index:n,value:e[n]}},"1,1,1":function({point:t}){const e=this.data[t[this.d0v0]][t[this.d1v0]],n=t[this.d2v0];return{parent:e,index:n,value:e[n]}},"1,1,2":function({point:t}){const e=this.data[t[this.d0v0]][t[this.d1v0]],n=this.m2v0*t[this.d2v0]+this.m2v1*t[this.d2v1];return{parent:e,index:n,value:e[n]}},"1,1,3":function({point:t}){const e=this.data[t[this.d0v0]][t[this.d1v0]],n=this.m2v0*t[this.d2v0]+this.m2v1*t[this.d2v1]+this.m2v2*t[this.d2v2];return{parent:e,index:n,value:e[n]}},"1,1,4":function({point:t}){const e=this.data[t[this.d0v0]][t[this.d1v0]],n=this.m2v0*t[this.d2v0]+this.m2v1*t[this.d2v1]+this.m2v2*t[this.d2v2]+this.m2v3*t[this.d2v3];return{parent:e,index:n,value:e[n]}},"1,1,5":function({point:t}){const e=this.data[t[this.d0v0]][t[this.d1v0]],n=this.m2v0*t[this.d2v0]+this.m2v1*t[this.d2v1]+this.m2v2*t[this.d2v2]+this.m2v3*t[this.d2v3]+this.m2v4*t[this.d2v4];return{parent:e,index:n,value:e[n]}},"1,1,1,1":function({point:t}){const e=this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]],n=t[this.d3v0];return{parent:e,index:n,value:e[n]}},"1,1,1,2":function({point:t}){const e=this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]],n=this.m3v0*t[this.d3v0]+this.m3v1*t[this.d3v1];return{parent:e,index:n,value:e[n]}},"1,1,1,3":function({point:t}){const e=this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]],n=this.m3v0*t[this.d3v0]+this.m3v1*t[this.d3v1]+this.m3v2*t[this.d3v2];return{parent:e,index:n,value:e[n]}},"1,1,1,4":function({point:t}){const e=this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]],n=this.m3v0*t[this.d3v0]+this.m3v1*t[this.d3v1]+this.m3v2*t[this.d3v2]+this.m3v3*t[this.d3v3];return{parent:e,index:n,value:e[n]}},"1,1,1,5":function({point:t}){const e=this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]],n=this.m3v0*t[this.d3v0]+this.m3v1*t[this.d3v1]+this.m3v2*t[this.d3v2]+this.m3v3*t[this.d3v3]+this.m3v4*t[this.d3v4];return{parent:e,index:n,value:e[n]}},"1,1,1,1,1":function({point:t}){const e=this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]][t[this.d3v0]],n=t[this.d4v0];return{parent:e,index:n,value:e[n]}},"1,1,1,1,2":function({point:t}){const e=this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]][t[this.d3v0]],n=this.m4v0*t[this.d4v0]+this.m4v1*t[this.d4v1];return{parent:e,index:n,value:e[n]}},"1,1,1,1,3":function({point:t}){const e=this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]][t[this.d3v0]],n=this.m4v0*t[this.d4v0]+this.m4v1*t[this.d4v1]+this.m4v2*t[this.d4v2];return{parent:e,index:n,value:e[n]}},"1,1,1,1,4":function({point:t}){const e=this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]][t[this.d3v0]],n=this.m4v0*t[this.d4v0]+this.m4v1*t[this.d4v1]+this.m4v2*t[this.d4v2]+this.m4v3*t[this.d4v3];return{parent:e,index:n,value:e[n]}},"1,1,1,1,5":function({point:t}){const e=this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]][t[this.d3v0]],n=this.m4v0*t[this.d4v0]+this.m4v1*t[this.d4v1]+this.m4v2*t[this.d4v2]+this.m4v3*t[this.d4v3]+this.m4v4*t[this.d4v4];return{parent:e,index:n,value:e[n]}}}},13752:function(t){t.exports={1:function({point:t,value:e}){this.data[t[this.d0v0]]=e},2:function({point:t,value:e}){this.data[this.m0v0*t[this.d0v0]+this.m0v1*t[this.d0v1]]=e},3:function({point:t,value:e}){this.data[this.m0v0*t[this.d0v0]+this.m0v1*t[this.d0v1]+this.m0v2*t[this.d0v2]]=e},4:function({point:t,value:e}){this.data[this.m0v0*t[this.d0v0]+this.m0v1*t[this.d0v1]+this.m0v2*t[this.d0v2]+this.m0v3*t[this.d0v3]]=e},5:function({point:t,value:e}){this.data[this.m0v0*t[this.d0v0]+this.m0v1*t[this.d0v1]+this.m0v2*t[this.d0v2]+this.m0v3*t[this.d0v3]+this.m0v4*t[this.d0v4]]=e},"1,1":function({point:t,value:e}){this.data[t[this.d0v0]][t[this.d1v0]]=e},"1,2":function({point:t,value:e}){this.data[t[this.d0v0]][this.m1v0*t[this.d1v0]+this.m1v1*t[this.d1v1]]=e},"1,3":function({point:t,value:e}){this.data[t[this.d0v0]][this.m1v0*t[this.d1v0]+this.m1v1*t[this.d1v1]+this.m1v2*t[this.d1v2]]=e},"1,4":function({point:t,value:e}){this.data[t[this.d0v0]][this.m1v0*t[this.d1v0]+this.m1v1*t[this.d1v1]+this.m1v2*t[this.d1v2]+this.m1v3*t[this.d1v3]]=e},"1,5":function({point:t,value:e}){this.data[t[this.d0v0]][this.m1v0*t[this.d1v0]+this.m1v1*t[this.d1v1]+this.m1v2*t[this.d1v2]+this.m1v3*t[this.d1v3]+this.m1v4*t[this.d1v4]]=e},"1,1,1":function({point:t,value:e}){this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]]=e},"1,1,2":function({point:t,value:e}){this.data[t[this.d0v0]][t[this.d1v0]][this.m2v0*t[this.d2v0]+this.m2v1*t[this.d2v1]]=e},"1,1,3":function({point:t,value:e}){this.data[t[this.d0v0]][t[this.d1v0]][this.m2v0*t[this.d2v0]+this.m2v1*t[this.d2v1]+this.m2v2*t[this.d2v2]]=e},"1,1,4":function({point:t,value:e}){this.data[t[this.d0v0]][t[this.d1v0]][this.m2v0*t[this.d2v0]+this.m2v1*t[this.d2v1]+this.m2v2*t[this.d2v2]+this.m2v3*t[this.d2v3]]=e},"1,1,5":function({point:t,value:e}){this.data[t[this.d0v0]][t[this.d1v0]][this.m2v0*t[this.d2v0]+this.m2v1*t[this.d2v1]+this.m2v2*t[this.d2v2]+this.m2v3*t[this.d2v3]+this.m2v4*t[this.d2v4]]=e},"1,1,1,1":function({point:t,value:e}){this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]][t[this.d3v0]]=e},"1,1,1,2":function({point:t,value:e}){this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]][this.m3v0*t[this.d3v0]+this.m3v1*t[this.d3v1]]=e},"1,1,1,3":function({point:t,value:e}){this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]][this.m3v0*t[this.d3v0]+this.m3v1*t[this.d3v1]+this.m3v2*t[this.d3v2]]=e},"1,1,1,4":function({point:t,value:e}){this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]][this.m3v0*t[this.d3v0]+this.m3v1*t[this.d3v1]+this.m3v2*t[this.d3v2]+this.m3v3*t[this.d3v3]]=e},"1,1,1,5":function({point:t,value:e}){this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]][this.m3v0*t[this.d3v0]+this.m3v1*t[this.d3v1]+this.m3v2*t[this.d3v2]+this.m3v3*t[this.d3v3]+this.m3v4*t[this.d3v4]]=e},"1,1,1,1,1":function({point:t,value:e}){this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]][t[this.d3v0]][t[this.d4v0]]=e},"1,1,1,1,2":function({point:t,value:e}){this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]][t[this.d3v0]][this.m4v0*t[this.d4v0]+this.m4v1*t[this.d4v1]]=e},"1,1,1,1,3":function({point:t,value:e}){this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]][t[this.d3v0]][this.m4v0*t[this.d4v0]+this.m4v1*t[this.d4v1]+this.m4v2*t[this.d4v2]]=e},"1,1,1,1,4":function({point:t,value:e}){this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]][t[this.d3v0]][this.m4v0*t[this.d4v0]+this.m4v1*t[this.d4v1]+this.m4v2*t[this.d4v2]+this.m4v3*t[this.d4v3]]=e},"1,1,1,1,5":function({point:t,value:e}){this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]][t[this.d3v0]][this.m4v0*t[this.d4v0]+this.m4v1*t[this.d4v1]+this.m4v2*t[this.d4v2]+this.m4v3*t[this.d4v3]+this.m4v4*t[this.d4v4]]=e}}},25336:function(t,e,n){const r={},{wrapNextFunction:i}=n(89027),o=n(52108),s=n(13752),a={Array:Array,Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:Uint8ClampedArray,Int16Array:Int16Array,Uint16Array:Uint16Array,Float32Array:Float32Array,Float64Array:Float64Array};try{a.BigInt64Array=BigInt64Array,a.BigUint64Array=BigUint64Array}catch(O){}function l(t){const e={},n=/[A-Za-z]+/g;let r;while(null!==(r=n.exec(t))){const[t]=r;e[t]={name:t}}return e}const u=t=>t.match(/\[[^\]]+\]/g),h=t=>t.startsWith("[")&&t.endsWith("]")?t.substring(1,t.length-1):t,c=t=>t.startsWith("(")&&t.endsWith(")")?t.substring(1,t.length-1):t,f=t=>t.match(/(\(.*?\)|[^\(,\s]+)(?=\s*,|\s*$)/g),d=t=>{t=h(t),t=c(t);const e=f(t);return 1===e.length?{type:"Vector",dim:e[0]}:{type:"Matrix",parts:e.map(d)}};function p(t){const e=t.match(/[^ A-Za-z,\[\]]/g);if(e)throw new Error("The following invalid characters were used: "+e.map((t=>`"${t}"`)).join(", "));return!0}function m(t,{useLayoutCache:e=!0}={useLayoutCache:!0}){if(e&&t in r)return r[t];p(t);const n=u(t),i=n.map(d),o={type:"Layout",summary:i.map((t=>"Matrix"===t.type?t.parts.length:1)),dims:i};return e&&(r[t]=o),o}function g({useLayoutCache:t=!0,data:e,layout:n,point:r,sizes:i={},value:o}){"string"===typeof n&&(n=m(n,{useLayoutCache:t}));const{dims:s}=n;for(let a=0;a=0;n--){const o=t[n],{dim:s}=o;if(l+=e*r[s],n>0){if(!(s in i))throw new Error(`you cannot calculate the location without knowing the size of the "${s}" dimension.`);e*=i[s]}}}t?e[l]=o:e=e[l]}}function y({useLayoutCache:t=!0,data:e,layout:n,sizes:r={}}){"string"===typeof n&&(n=m(n,{useLayoutCache:t}));const{dims:i}=n,o=i.length,a=w({useLayoutCache:t,layout:n,sizes:r}),l=o-1,u=n.summary.toString();if(u in s){const t={data:e};return n.dims.map(((e,n)=>{"Vector"===e.type?t[`d${n}v0`]=e.dim:"Matrix"===e.type&&e.parts.forEach(((e,r)=>{t[`d${n}v${r}`]=e.dim,t[`m${n}v${r}`]=a[e.dim]}))})),s[u].bind(t)}return({point:t,value:n})=>{let r=e;for(let e=0;ee+a[n]*t[n]),0),o?r[u]=n:r=r[u]}}}function _({data:t,layout:e,order:n,rect:r={},sizes:o={},useLayoutCache:s=!0}){if(!t)throw new Error("[xdim] must specify data");if(!e)throw new Error("[xdim] must specify layout");const a=C({order:n,sizes:o,rect:r});return i((function(){const{value:n,done:r}=a.next();if(r)return{done:!0};{const{value:r}=k({data:t,layout:e,point:n,sizes:o,useLayoutCache:s});return{done:!1,value:r}}}))}function v({rect:t={}}){if(t)for(let e in t){const n=t[e];if(2!==n.length)throw new Error("[xdim] uh oh. invalid hyper-rectangle");const[r,i]=n;if(r>i)throw new Error(`[xdim] uh oh. invalid range for "${e}". Start of ${r} can't be greater than end of ${i}.`);if(r<0)throw new Error(`[xdim] uh oh. invalid hyper-rectangle with start ${r}`)}}function b({useLayoutCache:t=!0,data:e,layout:n,rect:r,sizes:i={},flat:o=!1,validate:s=!0}){s&&v({rect:r}),"string"===typeof n&&(n=m(n,{useLayoutCache:t}));let a=[e];if(n.dims.forEach((t=>{let e=[];a.forEach((n=>{if("Vector"===t.type){const[i,o]=r[t.dim];e=e.concat(n.slice(i,o+1))}else{const{parts:o}=t;let s=[0],a=1;for(let t=o.length-1;t>=0;t--){const e=o[t],{dim:n}=e,[l,u]=r[n],h=[];for(let t=l;t<=u;t++)s.forEach((e=>{h.push(e+a*t)}));s=h,a*=i[n]}s.forEach((t=>{e.push(n[t])}))}})),a=e})),o)return{data:a};const l=Object.fromEntries(Object.entries(r).map((([t,[e,n]])=>[t,n-e+1]))),{data:u}=A({layout:n,sizes:l}),h=n.dims.length,c=(t,e)=>{if(e===h)for(let n=0;nc(t,e+1)))};return c(u,1),{data:u}}function w({useLayoutCache:t=!0,layout:e,sizes:n}){"string"===typeof e&&(e=m(e,{useLayoutCache:t}));const{dims:r}=e,i=r.length;let o={};for(let s=0;s=0;t--){const{dim:i}=e[t];o[i]=r,r*=n[e[t].dim]}}}return o}function x({useLayoutCache:t=!0,data:e,layout:n,sizes:r={}}){"string"===typeof n&&(n=m(n,{useLayoutCache:t}));const{dims:i}=n,s=i.length,a=w({useLayoutCache:t,layout:n,sizes:r}),l=s-1,u=n.summary.toString();if(u in o){const t={data:e};return n.dims.map(((e,n)=>{"Vector"===e.type?t[`d${n}v0`]=e.dim:"Matrix"===e.type&&e.parts.forEach(((e,r)=>{t[`d${n}v${r}`]=e.dim,t[`m${n}v${r}`]=a[e.dim]}))})),o[u].bind(t)}return({point:t})=>{let n=e;for(let e=0;ee+a[n]*t[n]),0),r)return{index:s,parent:n,value:n[s]};n=n[s]}}}function k({useLayoutCache:t=!0,data:e,layout:n,point:r,sizes:i={}}){let o,s;"string"===typeof n&&(n=m(n,{useLayoutCache:t}));let a=e;const{dims:l}=n,u=l.length;for(let h=0;h=0;t--){const o=e[t];if("Vector"===o.type){const{dim:e}=o;if(n+=l*r[e],t>0){if(!(e in i))throw new Error(`you cannot calculate the location without knowing the size of the "${e}" dimension.`);l*=i[e]}}}o=a,s=n,a=a[n]}}return{index:s,value:a,parent:o}}function S({arr:t,fill:e,lens:n,arrayTypes:r}){if(0===n.length)return t;const i=n[0];if(1===n.length){const n=r?r[r.length-1]:"Array";for(let r=0;r"Vector"===t.type?r[t.dim]:"Matrix"===t.type?t.parts.reduce(((t,e)=>{if(!(e.dim in r))throw new Error(`[xdim] could not find "${e.dim}" in sizes: { ${Object.keys(r).join(", ")} }`);return t*r[e.dim]}),1):void 0)),s=M({fill:t,shape:o,arrayTypes:i});return{data:s,shape:o,arrayTypes:i}}function E({start:t=0,end:e=100}){let n=t-1;return e+=1,i((function(){return n++,n===e?{done:!0}:{done:!1,value:n}}))}function C({order:t,sizes:e,rect:n={}}){const r=Array.isArray(t)?t:Object.keys(e).sort(((t,n)=>e[t]-e[n])),o=new Array(r.length),s={};for(let i=0;i=0;t--){const{value:i,done:a}=o[t].next();if(!a){for(let i=t+1;i} tile\n * @returns {Array} bbox\n * @example\n * var bbox = tileToBBOX([5, 10, 10])\n * //=bbox\n */\nfunction tileToBBOX(tile) {\n var e = tile2lon(tile[0] + 1, tile[2]);\n var w = tile2lon(tile[0], tile[2]);\n var s = tile2lat(tile[1] + 1, tile[2]);\n var n = tile2lat(tile[1], tile[2]);\n return [w, s, e, n];\n}\n\n/**\n * Get a geojson representation of a tile\n *\n * @name tileToGeoJSON\n * @param {Array} tile\n * @returns {Feature}\n * @example\n * var poly = tileToGeoJSON([5, 10, 10])\n * //=poly\n */\nfunction tileToGeoJSON(tile) {\n var bbox = tileToBBOX(tile);\n var poly = {\n type: 'Polygon',\n coordinates: [[\n [bbox[0], bbox[3]],\n [bbox[0], bbox[1]],\n [bbox[2], bbox[1]],\n [bbox[2], bbox[3]],\n [bbox[0], bbox[3]]\n ]]\n };\n return poly;\n}\n\nfunction tile2lon(x, z) {\n return x / Math.pow(2, z) * 360 - 180;\n}\n\nfunction tile2lat(y, z) {\n var n = Math.PI - 2 * Math.PI * y / Math.pow(2, z);\n return r2d * Math.atan(0.5 * (Math.exp(n) - Math.exp(-n)));\n}\n\n/**\n * Get the tile for a point at a specified zoom level\n *\n * @name pointToTile\n * @param {number} lon\n * @param {number} lat\n * @param {number} z\n * @returns {Array} tile\n * @example\n * var tile = pointToTile(1, 1, 20)\n * //=tile\n */\nfunction pointToTile(lon, lat, z) {\n var tile = pointToTileFraction(lon, lat, z);\n tile[0] = Math.floor(tile[0]);\n tile[1] = Math.floor(tile[1]);\n return tile;\n}\n\n/**\n * Get the 4 tiles one zoom level higher\n *\n * @name getChildren\n * @param {Array} tile\n * @returns {Array>} tiles\n * @example\n * var tiles = getChildren([5, 10, 10])\n * //=tiles\n */\nfunction getChildren(tile) {\n return [\n [tile[0] * 2, tile[1] * 2, tile[2] + 1],\n [tile[0] * 2 + 1, tile[1] * 2, tile[2 ] + 1],\n [tile[0] * 2 + 1, tile[1] * 2 + 1, tile[2] + 1],\n [tile[0] * 2, tile[1] * 2 + 1, tile[2] + 1]\n ];\n}\n\n/**\n * Get the tile one zoom level lower\n *\n * @name getParent\n * @param {Array} tile\n * @returns {Array} tile\n * @example\n * var tile = getParent([5, 10, 10])\n * //=tile\n */\nfunction getParent(tile) {\n return [tile[0] >> 1, tile[1] >> 1, tile[2] - 1];\n}\n\nfunction getSiblings(tile) {\n return getChildren(getParent(tile));\n}\n\n/**\n * Get the 3 sibling tiles for a tile\n *\n * @name getSiblings\n * @param {Array} tile\n * @returns {Array>} tiles\n * @example\n * var tiles = getSiblings([5, 10, 10])\n * //=tiles\n */\nfunction hasSiblings(tile, tiles) {\n var siblings = getSiblings(tile);\n for (var i = 0; i < siblings.length; i++) {\n if (!hasTile(tiles, siblings[i])) return false;\n }\n return true;\n}\n\n/**\n * Check to see if an array of tiles contains a particular tile\n *\n * @name hasTile\n * @param {Array>} tiles\n * @param {Array} tile\n * @returns {boolean}\n * @example\n * var tiles = [\n * [0, 0, 5],\n * [0, 1, 5],\n * [1, 1, 5],\n * [1, 0, 5]\n * ]\n * hasTile(tiles, [0, 0, 5])\n * //=boolean\n */\nfunction hasTile(tiles, tile) {\n for (var i = 0; i < tiles.length; i++) {\n if (tilesEqual(tiles[i], tile)) return true;\n }\n return false;\n}\n\n/**\n * Check to see if two tiles are the same\n *\n * @name tilesEqual\n * @param {Array} tile1\n * @param {Array} tile2\n * @returns {boolean}\n * @example\n * tilesEqual([0, 1, 5], [0, 0, 5])\n * //=boolean\n */\nfunction tilesEqual(tile1, tile2) {\n return (\n tile1[0] === tile2[0] &&\n tile1[1] === tile2[1] &&\n tile1[2] === tile2[2]\n );\n}\n\n/**\n * Get the quadkey for a tile\n *\n * @name tileToQuadkey\n * @param {Array} tile\n * @returns {string} quadkey\n * @example\n * var quadkey = tileToQuadkey([0, 1, 5])\n * //=quadkey\n */\nfunction tileToQuadkey(tile) {\n var index = '';\n for (var z = tile[2]; z > 0; z--) {\n var b = 0;\n var mask = 1 << (z - 1);\n if ((tile[0] & mask) !== 0) b++;\n if ((tile[1] & mask) !== 0) b += 2;\n index += b.toString();\n }\n return index;\n}\n\n/**\n * Get the tile for a quadkey\n *\n * @name quadkeyToTile\n * @param {string} quadkey\n * @returns {Array} tile\n * @example\n * var tile = quadkeyToTile('00001033')\n * //=tile\n */\nfunction quadkeyToTile(quadkey) {\n var x = 0;\n var y = 0;\n var z = quadkey.length;\n\n for (var i = z; i > 0; i--) {\n var mask = 1 << (i - 1);\n var q = +quadkey[z - i];\n if (q === 1) x |= mask;\n if (q === 2) y |= mask;\n if (q === 3) {\n x |= mask;\n y |= mask;\n }\n }\n return [x, y, z];\n}\n\n/**\n * Get the smallest tile to cover a bbox\n *\n * @name bboxToTile\n * @param {Array} bbox\n * @returns {Array} tile\n * @example\n * var tile = bboxToTile([ -178, 84, -177, 85 ])\n * //=tile\n */\nfunction bboxToTile(bboxCoords) {\n var min = pointToTile(bboxCoords[0], bboxCoords[1], 32);\n var max = pointToTile(bboxCoords[2], bboxCoords[3], 32);\n var bbox = [min[0], min[1], max[0], max[1]];\n\n var z = getBboxZoom(bbox);\n if (z === 0) return [0, 0, 0];\n var x = bbox[0] >>> (32 - z);\n var y = bbox[1] >>> (32 - z);\n return [x, y, z];\n}\n\nfunction getBboxZoom(bbox) {\n var MAX_ZOOM = 28;\n for (var z = 0; z < MAX_ZOOM; z++) {\n var mask = 1 << (32 - (z + 1));\n if (((bbox[0] & mask) !== (bbox[2] & mask)) ||\n ((bbox[1] & mask) !== (bbox[3] & mask))) {\n return z;\n }\n }\n\n return MAX_ZOOM;\n}\n\n/**\n * Get the precise fractional tile location for a point at a zoom level\n *\n * @name pointToTileFraction\n * @param {number} lon\n * @param {number} lat\n * @param {number} z\n * @returns {Array} tile fraction\n * var tile = pointToTileFraction(30.5, 50.5, 15)\n * //=tile\n */\nfunction pointToTileFraction(lon, lat, z) {\n var sin = Math.sin(lat * d2r),\n z2 = Math.pow(2, z),\n x = z2 * (lon / 360 + 0.5),\n y = z2 * (0.5 - 0.25 * Math.log((1 + sin) / (1 - sin)) / Math.PI);\n\n // Wrap Tile X\n x = x % z2;\n if (x < 0) x = x + z2;\n return [x, y, z];\n}\n\nmodule.exports = {\n tileToGeoJSON: tileToGeoJSON,\n tileToBBOX: tileToBBOX,\n getChildren: getChildren,\n getParent: getParent,\n getSiblings: getSiblings,\n hasTile: hasTile,\n hasSiblings: hasSiblings,\n tilesEqual: tilesEqual,\n tileToQuadkey: tileToQuadkey,\n quadkeyToTile: quadkeyToTile,\n pointToTile: pointToTile,\n bboxToTile: bboxToTile,\n pointToTileFraction: pointToTileFraction\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"map-container\"},[(_vm.show)?_c('l-map',{staticClass:\"map\",class:_vm.stac.type,attrs:{\"options\":_vm.mapOptions},on:{\"ready\":_vm.init}},[_c('l-control-fullscreen'),_c('l-control-zoom',_vm._b({key:`z${_vm.ix}`,attrs:{\"position\":\"topleft\"}},'l-control-zoom',_vm.zoomControlTexts,false)),(_vm.showLayerControl)?_c('l-control-layers',{ref:\"layerControl\",attrs:{\"position\":\"bottomleft\"}}):_vm._e(),_vm._l((_vm.basemaps),function(basemap){return _c(basemap.is,_vm._b({key:basemap.key,ref:\"basemaps\",refInFor:true,tag:\"component\",attrs:{\"layerType\":\"base\"}},'component',basemap,false))}),_vm._l((_vm.xyzLinks),function(xyz){return _c('l-tile-layer',{key:xyz.url,ref:\"overlays\",refInFor:true,attrs:{\"layerType\":\"overlay\",\"name\":xyz.name,\"url\":xyz.url,\"subdomains\":xyz.subdomains,\"options\":xyz.options}})}),(_vm.geojson)?_c('l-geo-json',{ref:\"geojson\",attrs:{\"geojson\":_vm.geojson,\"options\":{onEachFeature: _vm.showPopup},\"optionsStyle\":{color: _vm.secondaryColor, weight: _vm.secondaryWeight}}}):_vm._e()],2):_vm._e(),(_vm.popover && _vm.selectedItem)?_c('b-popover',{key:_vm.selectedItem.key,attrs:{\"placement\":\"left\",\"triggers\":\"manual\",\"show\":_vm.selectedItem !== null,\"target\":_vm.selectedItem.target,\"boundary\":\"#stac-browser\",\"container\":\"#stac-browser\"}},[_c('section',{staticClass:\"items\"},[_c('b-card-group',{staticClass:\"count-1\",attrs:{\"columns\":\"\"}},[_c('Item',{attrs:{\"item\":_vm.selectedItem.item}})],1)],1),_c('div',{staticClass:\"text-center\"},[_c('b-button',{attrs:{\"target\":\"_blank\",\"variant\":\"danger\"},on:{\"click\":_vm.resetSelectedItem}},[_vm._v(_vm._s(_vm.$t('leaflet.close')))])],1)]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export let Layout;\n\n(function (Layout) {\n Layout[\"[band][row][column]\"] = \"[band][row][column]\";\n Layout[\"[band][row,column]\"] = \"[band][row,column]\";\n Layout[\"[band,row,column]\"] = \"[band,row,column]\";\n Layout[\"[row,column,band]\"] = \"[row,column,band]\";\n Layout[\"[row,column][band]\"] = \"[row,column][band]\";\n Layout[\"[row][column][band]\"] = \"[row][column][band]\";\n Layout[\"[row][column,band]\"] = \"[row][column,band]\";\n})(Layout || (Layout = {}));","export default function makeNoDataRGB(noDataValue) {\n // typescript not smart enough to realize all values in the array will be the same\n // @ts-ignore\n return [noDataValue, noDataValue, noDataValue];\n}","export default function convert_raw_one_band_pixel_to_rgb(noDataValue, noDataPixel, scale, pixel) {\n if (pixel.includes(noDataValue)) return noDataPixel;\n const scaled = scale(pixel[0]);\n return [scaled, scaled, scaled];\n}","export default function convert_raw_one_band_pixel_to_rgb_str(noDataValue, noDataPixel, scale, pixel) {\n if (pixel.includes(noDataValue)) return noDataPixel;\n const scaled = scale(pixel[0]);\n return \"rgb(\" + scaled + \", \" + scaled + \", \" + scaled + \")\";\n}","export default function convert_raw_two_band_pixel_to_rgb(noDataValue, noDataPixel, scaleFunction1, scaleFunction2, pixel) {\n if (pixel.includes(noDataValue)) return noDataPixel;\n return [scaleFunction1(pixel[0]), scaleFunction2(pixel[1]), 0];\n}","export default function convert_raw_two_band_pixel_to_rgb_str(noDataValue, noDataPixel, scaleFunction1, scaleFunction2, pixel) {\n if (pixel.includes(noDataValue)) return noDataPixel;\n return \"rgb(\" + scaleFunction1(pixel[0]) + \", \" + scaleFunction2(pixel[1]) + \", 0)\";\n}","export default function convert_raw_three_band_pixel_to_rgb(noDataValue, noDataPixel, scaleFunction1, scaleFunction2, scaleFunction3, pixel) {\n if (pixel.includes(noDataValue)) return noDataPixel;\n return [scaleFunction1(pixel[0]), scaleFunction2(pixel[1]), scaleFunction3(pixel[2])];\n}","export default function convert_raw_three_band_pixel_to_rgb_css(noDataValue, noDataPixel, scaleFunction1, scaleFunction2, scaleFunction3, pixel) {\n if (pixel.includes(noDataValue)) return noDataPixel;\n return \"rgb(\" + scaleFunction1(pixel[0]) + \", \" + scaleFunction2(pixel[1]) + \", \" + scaleFunction3(pixel[2]) + \")\";\n}","export default function convert_raw_two_band_pixel_to_rgb(noDataValue, noDataPixel, scaleFunction1, scaleFunction2, scaleFunction3, pixel) {\n pixel = pixel.slice(0, 3);\n if (pixel.includes(noDataValue)) return noDataPixel;\n return [scaleFunction1(pixel[0]), scaleFunction2(pixel[1]), scaleFunction3(pixel[2])];\n}","export default function convert_raw_two_band_pixel_to_rgb_str(noDataValue, noDataPixel, scaleFunction1, scaleFunction2, scaleFunction3, pixel) {\n pixel = pixel.slice(0, 3);\n if (pixel.includes(noDataValue)) return noDataPixel;\n return \"rgb(\" + scaleFunction1(pixel[0]) + \", \" + scaleFunction2(pixel[1]) + \", \" + scaleFunction3(pixel[2]) + \")\";\n}","// prettier-ignore\nexport default function rgbToStr([r, g, b]) {\n return \"rgb(\" + r + \", \" + g + \", \" + b + \")\";\n}","import { createScaleFunction } from \"quick-scale\";\nimport makeNoDataRGB from \"../make-no-data-rgb\";\nimport convertSingle from \"./convert-single\";\nimport convertSingleStr from \"./convert-single-str\";\nimport convertDouble from \"./convert-double\";\nimport convertDoubleStr from \"./convert-double-str\";\nimport convertTriple from \"./convert-triple\";\nimport convertTripleStr from \"./convert-triple-str\";\nimport convertMulti from \"./convert-many\";\nimport convertMultiStr from \"./convert-many-str\";\nimport rgbToStr from \"../rgb-to-str\";\nexport default function rawToRgb({\n format = \"array\",\n ranges,\n flip,\n new_no_data_pixel,\n new_no_data_value,\n no_range_value,\n no_range_value_strategy,\n old_no_data_value,\n round = true\n}) {\n const nbands = ranges.length;\n\n if (new_no_data_pixel && new_no_data_value) {\n throw new Error(\"[pixel-utils/raw-to-rgb] can't specify both new_no_data_pixel and new_no_data_value\");\n }\n\n if (new_no_data_pixel === undefined || new_no_data_pixel === null) {\n if (new_no_data_value === undefined || new_no_data_value === null) {\n new_no_data_pixel = makeNoDataRGB(null);\n } else {\n new_no_data_pixel = makeNoDataRGB(new_no_data_value);\n }\n }\n\n if (new_no_data_pixel === undefined) throw new Error(\"[raw-to-rgb] undefined new_no_data_pixel\");\n const new_range = [0 === new_no_data_value ? 1 : 0, 255 === new_no_data_value ? 254 : 255];\n const options = {\n flip,\n no_range_value,\n no_range_value_strategy,\n round\n };\n const scalefns = ranges.slice(0, 3).map(rng => createScaleFunction(rng, new_range, options));\n\n if (nbands === 1) {\n if (format === \"string\") {\n // @ts-ignore\n return convertSingleStr.bind(null, old_no_data_value, rgbToStr(new_no_data_pixel), ...scalefns);\n } else {\n // @ts-ignore\n return convertSingle.bind(null, old_no_data_value, new_no_data_pixel, ...scalefns);\n }\n } else if (nbands === 2) {\n if (format === \"string\") {\n // @ts-ignore\n return convertDoubleStr.bind(null, old_no_data_value, rgbToStr(new_no_data_pixel), ...scalefns);\n } else {\n // @ts-ignore\n return convertDouble.bind(null, old_no_data_value, new_no_data_pixel, ...scalefns);\n }\n } else if (nbands === 3) {\n if (format === \"string\") {\n // @ts-ignore\n return convertTripleStr.bind(null, old_no_data_value, rgbToStr(new_no_data_pixel), ...scalefns);\n } else {\n // @ts-ignore\n return convertTriple.bind(null, old_no_data_value, new_no_data_pixel, ...scalefns);\n }\n } else if (nbands >= 4) {\n if (format === \"string\") {\n // @ts-ignore\n return convertMultiStr.bind(null, old_no_data_value, rgbToStr(new_no_data_pixel), ...scalefns);\n } else {\n // @ts-ignore\n return convertMulti.bind(null, old_no_data_value, new_no_data_pixel, ...scalefns);\n }\n } else {\n throw new Error(\"[pixel-utils/raw-to-rgb] invalid number of bands: \" + nbands);\n }\n}","\"use strict\";\n\n/****\n * TO DO:\n * add support for GeoJSON and need to check projection of GeoJSON\n */\nimport add from \"preciso/add.js\";\nimport divide from \"preciso/divide.js\";\nimport multiply from \"preciso/multiply.js\";\nimport subtract from \"preciso/subtract.js\";\nimport getEPSGCode from \"get-epsg-code\";\nimport reprojectBoundingBox from \"reproject-bbox\";\n\nconst avg = (a, b) => divide(add(a.toString(), b.toString()), \"2\");\nconst isAry = o => Array.isArray(o);\nconst isDef = o => o !== undefined && o !== null && o !== \"\";\nconst isFunc = o => typeof o === \"function\";\n\n// identifying GeoJSON currently unused\n// shouldn't rely on type being provided\n// because sometimes the rest could be valid but no type is provided\n// const isFeatureCollection = it => isObj(it) && it.type === \"FeatureCollection\" && hasKey(it, \"features\");\n// const isFeature = it => isObj(it) && it.type === \"Feature\" && hasKey(it, \"geometry\");\n// const isGeometryCollection = it => isObj(it) && it.type === \"GeometryCollection\" && hasKey(\"geometries\");\n// const isMultiPolygon = it => isObj(it) && it.type === \"MultiPolygon\" && hasKey(it, \"coordinates\");\n// const isPolygon = it => isObj(it) && it.type === \"Polygon\" && hasKey(it, \"coordinates\");\n// const isPoint = it => isObj(it) && it.type === \"Point\" && hasKey(it, \"coordinates\");\n// const isMultiPoint = it => isObj(it) && isObj.type === \"MultiPoint\" && hasKey(it, \"coordinates\");\n\nconst isObj = o => typeof o === \"object\";\nconst isStr = o => typeof o === \"string\";\nconst isNum = o => typeof o === \"number\";\nconst isBoxStr = o => isStr(o) && !!o.match(/^[-|+]?[\\d\\.]+(, ?[-|+]?[\\d\\.]+){3}$/);\nconst isLeafletLatLngBounds = o => isObj(o) && hasFuncs(o, [\"getEast\", \"getNorth\", \"getSouth\", \"getWest\"]);\nconst hasFunc = (o, f) => isObj(o) && isFunc(o[f]);\nconst hasObj = (o, k) => isObj(o) && isObj(o[k]);\nconst hasFuncs = (o, fs) => fs.every(f => hasFunc(o, f));\nconst hasObjs = (o, ks) => ks.every(k => hasObj(o, k));\nconst hasKey = (o, k) => isObj(o) && o[k] !== undefined && o[k] !== null;\nconst hasKeys = (o, ks) => ks.every(k => hasKey(o, k));\nconst allNums = ary => isAry(ary) && ary.every(isNum);\nconst allStrs = ary => isAry(ary) && ary.every(isStr);\nconst getConstructor = o => (typeof obj === \"object\" && typeof obj.constructor === \"function\") || undefined;\nconst normalize = srs => {\n if (!srs) return srs;\n if (isStr(srs) && srs.startsWith(\"EPSG:\")) return srs;\n if (isStr(srs) && srs.match(/^\\d+$/)) return \"EPSG:\" + srs;\n else if (isNum(srs)) return \"EPSG:\" + srs;\n const code = getEPSGCode(srs);\n if (isNum(code)) return \"EPSG:\" + code;\n return srs;\n};\n\n// currently unused\n// const getConstructorName = o =>\n// (typeof obj === \"object\" &&\n// typeof obj.constructor === \"function\" &&\n// typeof obj.constructor.name === \"string\" &&\n// obj.constructor.name) ||\n// undefined;\n\n// const forEachCoord = (data, cb) => {\n// if (data.features) data.features.forEach(forEachCoord);\n// else if (data.geometry) forEachCoord(data.geometry);\n// else if (data.coordinates) forEachCoord(data.coordinates);\n// else if (Array.isArray(data) && Array.isArray(data[0])) data.map(forEachCoord);\n// else if (Array.isArray(data) && (data.length === 2 || data.length === 3) && typeof data[0] === \"number\") {\n// const [x, y, z] = data;\n// cb({ x, y, z });\n// }\n// };\n\n// const getExtentOfGeoJSON = geojson => {\n// let xmin, xmax, ymin, ymax;\n// if (geojson.features) {\n\n// }\n// }\n\nexport class GeoExtent {\n constructor(o, { srs } = {}) {\n this.srs = normalize(srs);\n\n let xmin, xmax, ymin, ymax;\n let xmin_str, xmax_str, ymin_str, ymax_str;\n if (getConstructor(o) === this.constructor) {\n ({ xmin, xmax, ymin, ymax } = o);\n if (isDef(o.srs)) {\n this.srs = normalize(o.srs);\n }\n }\n\n if (isBoxStr(o)) o = o.split(/, ?/);\n\n if (isAry(o) && o.length === 4 && allNums(o)) {\n [xmin, ymin, xmax, ymax] = o;\n } else if (isAry(o) && o.length === 4 && allStrs(o)) {\n [xmin_str, ymin_str, xmax_str, ymax_str] = o;\n [xmin, ymin, xmax, ymax] = o.map(str => Number(str));\n } else if (isAry(o) && o.length === 2 && o.every(isAry) && o.every(o => o.length === 2 && allNums(o))) {\n [[ymin, xmin], [ymax, xmax]] = o;\n } else if (isLeafletLatLngBounds(o)) {\n (xmin = o.getWest()), (xmax = o.getEast()), (ymin = o.getSouth()), (ymax = o.getNorth());\n if (!isDef(this.srs)) this.srs = \"EPSG:4326\";\n } else if (isAry(o) && o.length === 2 && o.every(it => hasKeys(it, [\"x\", \"y\"]))) {\n [{ x: xmin, y: ymin }, { x: xmax, y: ymax }] = o;\n } else if (isObj(o) && hasKeys(o, [\"x\", \"y\"]) && isNum(o.x) && isNum(o.y)) {\n // receive a point like { x: 147, y: -18 } because isn't a point\n // really just an extent with zero height and width?\n xmin = xmax = o.x;\n ymin = ymax = o.y;\n if (hasKey(o, \"spatialReference\") && hasKey(o.spatialReference, \"wkid\")) {\n if (!isDef(this.srs)) this.srs = normalize(o.spatialReference.wkid);\n }\n } else if (isObj(o) && hasKeys(o, [\"xmin\", \"xmax\", \"ymin\", \"ymax\"])) {\n ({ xmin, xmax, ymin, ymax } = o);\n const keys = [\"srs\", \"crs\", \"proj\", \"projection\"];\n\n for (let i = 0; i < keys.length; i++) {\n const k = keys[i];\n const v = o[k];\n const normalized = normalize(v);\n if (normalized) {\n this.srs = normalized;\n break;\n }\n }\n\n if (!this.srs && isDef(o.srs)) {\n this.srs = o.srs;\n }\n } else if (isAry(o) && o.length === 2 && allNums(o)) {\n // assume [ x , y ]\n xmin = xmax = o[0];\n ymin = ymax = o[1];\n } else if (isObj(o) && hasFuncs(o, [\"getCoordinates\"])) {\n const xy = o.getCoordinates();\n xmin = xmax = xy[0];\n ymin = ymax = xy[1];\n } else if (isObj(o) && hasKey(o, \"bbox\") && o.bbox.length === 4 && allNums(o)) {\n // like GeoJSON with bbox property set\n // { type: \"Feature\", \"bbox\": [-37, 7, 12, 67 ], \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [...] } }\n [xmin, ymin, xmax, ymax] = o.bbox;\n } else if (hasObj(o, \"_bounds\") && isLeafletLatLngBounds(o._bounds)) {\n const { _bounds } = o;\n (xmin = _bounds.getWest()), (xmax = _bounds.getEast()), (ymin = _bounds.getSouth()), (ymax = _bounds.getNorth());\n if (!this.srs) this.srs = \"EPSG:4326\";\n } else if (isObj(o) && isObj(o._bounds) && hasObjs(o._bounds, [\"_southWest\", \"_northEast\"])) {\n ({ lat: ymin, lng: xmin } = o._bounds._southWest);\n ({ lat: ymax, lng: xmax } = o._bounds._northEast);\n if (!isDef(this.srs)) this.srs = \"EPSG:4326\";\n } else {\n throw new Error(\"[geo-extent] unknown format\");\n }\n\n this.xmin = xmin;\n this.xmin_str = xmin_str || xmin.toString();\n this.ymin = ymin;\n this.ymin_str = ymin_str || ymin.toString();\n this.xmax = xmax;\n this.xmax_str = xmax_str || xmax.toString();\n this.ymax = ymax;\n this.ymax_str = ymax_str || ymax.toString();\n\n this.width_str = subtract(this.xmax_str, this.xmin_str);\n this.width = Number(this.width_str);\n\n this.height_str = subtract(this.ymax_str, this.ymin_str);\n this.height = Number(this.height_str);\n\n // corners\n this.bottomLeft = { x: xmin, y: ymin };\n this.bottomRight = { x: xmax, y: ymin };\n this.topLeft = { x: xmin, y: ymax };\n this.topRight = { x: xmax, y: ymax };\n\n this.leafletBounds = [\n [this.ymin, this.xmin],\n [this.ymax, this.xmax]\n ];\n\n this.area_str = multiply(this.width_str, this.height_str);\n this.area = Number(this.area_str);\n\n this.perimeter_str = add(multiply(this.width_str, \"2\"), multiply(this.height_str, \"2\"));\n this.perimeter = Number(this.perimeter_str);\n\n this.bbox = [xmin, ymin, xmax, ymax];\n this.bbox_str = [this.xmin_str, this.ymin_str, this.xmax_str, this.ymax_str];\n\n this.center_str = {\n x: avg(xmin_str || xmin, xmax_str || xmax),\n y: avg(ymin_str || ymin, ymax_str || ymax)\n };\n this.center = { x: Number(this.center_str.x), y: Number(this.center_str.y) };\n\n this.str = this.bbox_str.join(\",\");\n }\n\n _pre(_this, _other) {\n // convert other to an extent instance (if not already)\n _other = new this.constructor(_other);\n\n if (!isDef(_this.srs) && !isDef(_other.srs)) {\n // assume same/no projection\n } else if (isDef(_this.srs) && !isDef(_other.srs)) {\n // assume other is the same srs as this\n _other = new _this.constructor({ ..._other, srs: _this.srs });\n } else if (!isDef(_this.srs) && isDef(_other.srs)) {\n // assume this' srs is the same as other\n _this = new _this.constructor({ ..._this, srs: _other.srs });\n } else if (isDef(_this.srs) && isDef(_other.srs) && _this.srs !== _other.srs) {\n _other = _other.reproj(_this.srs);\n } else if (isDef(_this.srs) && isDef(_other.srs) && _this.srs === _other.srs) {\n // same projection, so no reprojection necessary\n } else {\n throw \"UH OH\";\n }\n return [_this, _other];\n }\n\n clone() {\n return new this.constructor(this);\n }\n\n contains(other) {\n const [_this, _other] = this._pre(this, other);\n\n const xContains = _other.xmin >= _this.xmin && _other.xmax <= _this.xmax;\n const yContains = _other.ymin >= _this.ymin && _other.ymax <= _this.ymax;\n\n return xContains && yContains;\n }\n\n // should return null if no overlap\n crop(other) {\n other = new this.constructor(other);\n\n // if really no overlap then return null\n if (this.overlaps(other, { quiet: true }) === false && other.overlaps(this, { quiet: true }) === false) return null;\n\n // first check if other fully contains this extent\n // in which case, we don't really need to crop\n // and can just return the extent of this\n if (other.contains(this)) return this.clone();\n\n // check if special case where other crosses 180th meridian\n if (other.srs === \"EPSG:4326\" && (other.xmin < -180 || other.xmax > 180)) {\n const parts = other.unwrap();\n\n let cropped = parts.map(it => this.crop(it));\n\n // filter out any parts that are null (didn't overlap)\n cropped = cropped.filter(Boolean);\n\n // no overlap\n if (cropped.length === 0) return null;\n\n let combo = cropped[0];\n for (let i = 1; i < cropped.length; i++) combo = combo.combine(cropped[i]);\n\n return combo;\n }\n\n // if both this and other have srs defined reproject\n // otherwise, assume they are the same projection\n let another = isDef(this.srs) && isDef(other.srs) ? other.reproj(this.srs, { quiet: true }) : other.clone();\n if (another) {\n if (!this.overlaps(another)) return null;\n const xmin = Math.max(this.xmin, another.xmin);\n const ymin = Math.max(this.ymin, another.ymin);\n const xmax = Math.min(this.xmax, another.xmax);\n const ymax = Math.min(this.ymax, another.ymax);\n return new this.constructor([xmin, ymin, xmax, ymax], { srs: this.srs });\n }\n\n // fall back to converting everything to 4326 and cropping there\n const this4326 = isDef(this.srs) ? this.reproj(4326) : this;\n const other4326 = isDef(other.srs) ? other.reproj(4326) : other;\n const [aMinLon, aMinLat, aMaxLon, aMaxLat] = this4326.bbox;\n const [bMinLon, bMinLat, bMaxLon, bMaxLat] = other4326.bbox;\n\n if (!this4326.overlaps(other4326)) return null;\n\n const minLon = Math.max(aMinLon, bMinLon);\n const minLat = Math.max(aMinLat, bMinLat);\n const maxLon = Math.min(aMaxLon, bMaxLon);\n const maxLat = Math.min(aMaxLat, bMaxLat);\n return new this.constructor([minLon, minLat, maxLon, maxLat], { srs: 4326 }).reproj(this.srs);\n }\n\n // add two extents together\n // result is a new extent in the projection of this\n combine(other) {\n if (isDef(this.srs) && isDef(other.srs)) {\n other = other.reproj(this.srs);\n }\n\n const xmin = Math.min(this.xmin, other.xmin);\n const xmax = Math.max(this.xmax, other.xmax);\n const ymin = Math.min(this.ymin, other.ymin);\n const ymax = Math.max(this.ymax, other.ymax);\n\n return new this.constructor({ xmin, xmax, ymin, ymax, srs: this.srs });\n }\n\n equals(other, { digits = 13, strict = true } = { digits: 13, strict: true }) {\n // convert other to GeoExtent if necessary\n other = new this.constructor(other);\n\n if (isDef(this.srs) && isDef(other.srs)) {\n other = other.reproj(this.srs);\n } else if (strict && isDef(this.srs) !== !isDef(this.srs)) {\n return false;\n }\n const str1 = this.bbox.map(n => n.toFixed(digits)).join(\",\");\n const str2 = other.bbox.map(n => n.toFixed(digits)).join(\",\");\n return str1 === str2;\n }\n\n /*\n shouldn't accept GeoJSON as input because the extent created from a GeoJSON\n might overlap, but the actual polygon wouldn't.\n Or at least make the user have to be explicit about the functionality via\n a flag like overlaps(geojson, { strict: false })\n */\n overlaps(other, { quiet = false } = { quite: false }) {\n try {\n const [_this, _other] = this._pre(this, other);\n\n const yOverlaps = _other.ymin <= _this.ymax && _other.ymax >= _this.ymin;\n const xOverlaps = _other.xmin <= _this.xmax && _other.xmax >= _this.xmin;\n\n return xOverlaps && yOverlaps;\n } catch (error) {\n if (quiet) return;\n else throw error;\n }\n }\n\n reproj(to, { quiet = false } = { quiet: false }) {\n to = normalize(to); // normalize srs\n\n // don't need to reproject, so just return a clone\n if (isDef(this.srs) && this.srs === normalize(to)) return this.clone();\n\n if (!isDef(this.srs)) {\n if (quiet) return;\n throw new Error(`[geo-extent] cannot reproject ${this.bbox} without a projection set`);\n }\n\n // unwrap, reproject pieces, and combine\n if (this.srs === \"EPSG:4326\" && (this.xmin < -180 || this.xmax > 180)) {\n try {\n const parts = this.unwrap().map(ext => ext.reproj(to));\n let combo = parts[0];\n for (let i = 1; i < parts.length; i++) combo = combo.combine(parts[i]);\n return combo;\n } catch (error) {\n if (quiet) return;\n throw error;\n }\n }\n\n const reprojected = reprojectBoundingBox({\n bbox: this.bbox,\n from: this.srs,\n to\n });\n\n if (reprojected.some(isNaN)) {\n if (quiet) return;\n throw new Error(`[geo-extent] failed to reproject ${this.bbox} from ${this.srs} to ${to}`);\n }\n return new GeoExtent(reprojected, { srs: to });\n }\n\n unwrap() {\n const { xmin, ymin, xmax, ymax, srs } = this;\n\n // not in 4326, so just return a clone\n if (srs !== \"EPSG:4326\") return [this.clone()];\n\n // extent is within the normal extent of the earth, so return clone\n if (xmin > -180 && xmax < 180) return [this.clone()];\n\n // handle special case where extent overflows xmin and then overlaps itself\n if (xmin < -180 && xmax >= xmin + 360) return [new this.constructor([-180, ymin, 180, ymax], { srs: 4326 })];\n\n if (xmax > 180 && xmin <= xmax - 360) return [new this.constructor([-180, ymin, 180, ymax], { srs: 4326 })];\n\n let extents = [];\n\n // extent overflows left edge of the world\n if (xmin < -180) {\n extents.push(new this.constructor([xmin + 360, ymin, 180, ymax], { srs }));\n }\n\n // add extent for part between -180 to 180 longitude\n extents.push(new this.constructor([xmin < -180 ? -180 : xmin, ymin, xmax > 180 ? 180 : xmax, ymax], { srs }));\n\n // extent overflows right edge of the world\n if (this.xmax > 180) {\n extents.push(new this.constructor([-180, ymin, xmax - 360, ymax], { srs }));\n }\n\n return extents;\n }\n\n asEsriJSON() {\n return {\n xmin: this.xmin,\n ymin: this.ymin,\n xmax: this.xmax,\n ymax: this.ymax,\n spatialReference: {\n wkid: this.srs\n }\n };\n }\n\n asGeoJSON() {\n const { xmin, ymin, xmax, ymax } = this.srs === \"EPSG:4326\" ? this : this.reproj(4326);\n return {\n type: \"Feature\",\n geometry: {\n type: \"Polygon\",\n coordinates: [\n [\n [xmin, ymax],\n [xmax, ymax],\n [xmax, ymin],\n [xmin, ymin],\n [xmin, ymax]\n ]\n ]\n }\n };\n }\n\n asObj() {\n const res = {};\n for (let k in this) {\n const v = this[k];\n if (!isFunc(v)) {\n res[k] = v;\n }\n }\n return res;\n }\n}\n\nif (typeof define === \"function\" && define.amd)\n define(function () {\n return GeoExtent;\n });\nif (typeof self === \"object\") self.GeoExtent = GeoExtent;\nif (typeof window === \"object\") window.GeoExtent = GeoExtent;\n","/* global proj4 */\nimport \"regenerator-runtime/runtime.js\";\nimport * as L from \"leaflet\";\nimport chroma from \"chroma-js\";\nimport geocanvas from \"geocanvas\";\nimport { rawToRgb } from \"pixel-utils\";\nimport isUTM from \"utm-utils/src/isUTM.js\";\nimport getProjString from \"utm-utils/src/getProjString.js\";\nimport proj4FullyLoaded from \"proj4-fully-loaded\";\nimport { GeoExtent } from \"geo-extent\";\nimport snap from \"snap-bbox\";\nconst EPSG4326 = 4326;\nconst PROJ4_SUPPORTED_PROJECTIONS = new Set([3785, 3857, 4269, 4326, 900913, 102113]);\nconst MAX_NORTHING = 1000;\nconst MAX_EASTING = 1000;\nconst ORIGIN = [0, 0];\n\nconst log = obj => console.log(\"[georaster-layer-for-leaflet] \", obj); // figure out if simple CRS\n// even if not created with same instance of LeafletJS\n\n\nconst isSimpleCRS = crs => {\n var _crs$transformation, _crs$transformation2, _crs$transformation3, _crs$transformation4;\n\n return crs === L.CRS.Simple || !crs.code && crs.infinite && (crs === null || crs === void 0 ? void 0 : (_crs$transformation = crs.transformation) === null || _crs$transformation === void 0 ? void 0 : _crs$transformation._a) === 1 && (crs === null || crs === void 0 ? void 0 : (_crs$transformation2 = crs.transformation) === null || _crs$transformation2 === void 0 ? void 0 : _crs$transformation2._b) === 0 && (crs === null || crs === void 0 ? void 0 : (_crs$transformation3 = crs.transformation) === null || _crs$transformation3 === void 0 ? void 0 : _crs$transformation3._c) === -1 && (crs === null || crs === void 0 ? void 0 : (_crs$transformation4 = crs.transformation) === null || _crs$transformation4 === void 0 ? void 0 : _crs$transformation4._d) === 0;\n};\n\nif (!L) console.warn(\"[georaster-layer-for-leaflet] can't find Leaflet. If you are loading via ","import mod from \"-!../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LControlFullscreen.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LControlFullscreen.vue?vue&type=script&lang=js\"","import { CRS } from 'leaflet';\nimport STAC from './src/models/stac';\nimport Utils from './src/utils';\n\nconst USGS_ATTRIBUTION = 'USGS Astrogeology';\nconst WMS = 'LWMSTileLayer';\nconst XYZ = 'LTileLayer';\n\nconst BASEMAPS = {\n earth: {\n url: 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',\n name: 'OpenStreetMap',\n is: XYZ,\n attribution: '© OpenStreetMap contributors.'\n },\n europa: {\n baseUrl: 'https://planetarymaps.usgs.gov/cgi-bin/mapserv?map=/maps/jupiter/europa_simp_cyl.map',\n is: WMS,\n name: 'USGS Europa',\n attribution: USGS_ATTRIBUTION,\n crs: CRS.EPSG4326,\n format: 'image/png',\n layers: 'GALILEO_VOYAGER'\n },\n mars: {\n baseUrl: 'https://planetarymaps.usgs.gov/cgi-bin/mapserv?map=/maps/mars/mars_simp_cyl.map',\n is: WMS,\n name: 'USGS Mars',\n attribution: USGS_ATTRIBUTION,\n crs: CRS.EPSG4326,\n format: 'image/png',\n layers: 'MDIM21'\n },\n moon: {\n baseUrl: 'https://planetarymaps.usgs.gov/cgi-bin/mapserv?map=/maps/earth/moon_simp_cyl.map',\n is: WMS,\n name: 'USGS Moon',\n attribution: USGS_ATTRIBUTION,\n crs: CRS.EPSG4326,\n format: 'image/png',\n layers: 'LROC_WAC'\n }\n};\n\n/**\n * @typedef BasemapOptions\n * @type {Object}\n * @property {string} is Component: LWMSTileLayer or LTileLayer\n * @see https://vue2-leaflet.netlify.app/components/\n */\n\n/**\n * \n * @param {Object} stac The STAC object\n * @param {Object} map The Leaflet map object\n * @param {Object} i18n Vue I18N object\n * @returns {Array.}\n */\nexport default function configureBasemap(stac, map, i18n) {\n let targets = ['earth'];\n if (stac instanceof STAC) {\n if (stac.isCollection() && Utils.isObject(stac.summaries) && Array.isArray(stac.summaries['ssys:targets'])) {\n targets = stac.summaries['ssys:targets'];\n }\n else if (stac.isCollection() && Array.isArray(stac['ssys:targets'])) {\n targets = stac['ssys:targets'];\n }\n else if (stac.isItem() && Array.isArray(stac.properties['ssys:targets'])) {\n targets = stac.properties['ssys:targets'];\n }\n }\n\n return targets.map(target => BASEMAPS[target.toLowerCase()]);\n};","\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Map.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Map.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Map.vue?vue&type=template&id=d6ae1928\"\nimport script from \"./Map.vue?vue&type=script&lang=js\"\nexport * from \"./Map.vue?vue&type=script&lang=js\"\nimport style0 from \"./Map.vue?vue&type=style&index=0&id=d6ae1928&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/* This is based on https://github.com/heyman/leaflet-areaselect from @heymen\n * with contributions from @lweller and @ebrensi */\n\n/* eslint-disable no-undef */\n\nL.AreaSelect = L.Class.extend({\n includes: L.Evented.prototype,\n\n options: {\n width: 200,\n height: 300,\n minWidth: 30,\n minHeight: 30,\n minHorizontalSpacing: 30,\n minVerticalSpacing: 30,\n keepAspectRatio: false,\n },\n\n initialize: function (options) {\n L.Util.setOptions(this, options);\n\n this._width = this.options.width;\n this._height = this.options.height;\n },\n\n addTo: function (map) {\n this.map = map;\n if (this._container) { this.map._controlContainer.appendChild(this._container); }\n else { this._createElements(); }\n this.map.on(\"moveend\", this._onMapChange, this);\n this.map.on(\"zoomend\", this._onMapChange, this);\n this.map.on(\"resize\", this._onMapResize, this);\n\n this.fire(\"change\");\n this._render();\n return this;\n },\n\n getBounds: function () {\n const size = this.map.getSize();\n const topRight = new L.Point();\n const bottomLeft = new L.Point();\n\n bottomLeft.x = Math.round((size.x - this._width) / 2);\n topRight.y = Math.round((size.y - this._height) / 2);\n topRight.x = size.x - bottomLeft.x;\n bottomLeft.y = size.y - topRight.y;\n\n const sw = this.map.containerPointToLatLng(bottomLeft);\n const ne = this.map.containerPointToLatLng(topRight);\n\n return new L.LatLngBounds(sw, ne);\n },\n\n getBBoxCoordinates: function () {\n const size = this.map.getSize();\n\n const topRight = new L.Point();\n const bottomLeft = new L.Point();\n const topLeft = new L.Point();\n const bottomRight = new L.Point();\n\n bottomLeft.x = Math.round((size.x - this._width) / 2);\n topRight.y = Math.round((size.y - this._height) / 2);\n topRight.x = size.x - bottomLeft.x;\n bottomLeft.y = size.y - topRight.y;\n\n topLeft.x = bottomLeft.x;\n topLeft.y = topRight.y;\n bottomRight.x = topRight.x;\n bottomRight.y = bottomLeft.y;\n\n const coordinates = [\n { sw: this.map.containerPointToLatLng(bottomLeft) },\n { nw: this.map.containerPointToLatLng(topLeft) },\n { ne: this.map.containerPointToLatLng(topRight) },\n { se: this.map.containerPointToLatLng(bottomRight) },\n ];\n\n return coordinates;\n },\n\n remove: function () {\n this.map.off(\"moveend\", this._onMapChange);\n this.map.off(\"zoomend\", this._onMapChange);\n this.map.off(\"resize\", this._onMapResize);\n\n this._container.parentNode.removeChild(this._container);\n },\n\n setDimensions: function (dimensions) {\n if (!dimensions) { return; }\n\n this._height = parseInt(dimensions.height) || this._height;\n this._width = parseInt(dimensions.width) || this._width;\n this._render();\n this.fire(\"change\");\n },\n\n _createElements: function () {\n if (this._container) { return; }\n\n this._container = L.DomUtil.create(\n \"div\",\n \"leaflet-areaselect-container\",\n this.map._controlContainer\n );\n this._topShade = L.DomUtil.create(\n \"div\",\n \"leaflet-areaselect-shade leaflet-control\",\n this._container\n );\n this._bottomShade = L.DomUtil.create(\n \"div\",\n \"leaflet-areaselect-shade leaflet-control\",\n this._container\n );\n this._leftShade = L.DomUtil.create(\n \"div\",\n \"leaflet-areaselect-shade leaflet-control\",\n this._container\n );\n this._rightShade = L.DomUtil.create(\n \"div\",\n \"leaflet-areaselect-shade leaflet-control\",\n this._container\n );\n\n this._nwHandle = L.DomUtil.create(\n \"div\",\n \"leaflet-areaselect-handle leaflet-control\",\n this._container\n );\n this._swHandle = L.DomUtil.create(\n \"div\",\n \"leaflet-areaselect-handle leaflet-control\",\n this._container\n );\n this._neHandle = L.DomUtil.create(\n \"div\",\n \"leaflet-areaselect-handle leaflet-control\",\n this._container\n );\n this._seHandle = L.DomUtil.create(\n \"div\",\n \"leaflet-areaselect-handle leaflet-control\",\n this._container\n );\n\n this._setUpHandlerEvents(this._nwHandle);\n this._setUpHandlerEvents(this._neHandle, -1, 1);\n this._setUpHandlerEvents(this._swHandle, 1, -1);\n this._setUpHandlerEvents(this._seHandle, -1, -1);\n },\n\n _setUpHandlerEvents: function (handle, xMod, yMod) {\n xMod = xMod || 1;\n yMod = yMod || 1;\n\n const self = this;\n function onPointerDown(event) {\n event.stopPropagation();\n event.preventDefault();\n self.map.dragging.disable();\n L.DomEvent.removeListener(this, \"onpointerdown\", onPointerDown);\n let curX = event.pageX;\n let curY = event.pageY;\n const ratio = self._width / self._height;\n const size = self.map.getSize();\n const mapContainer = self.map.getContainer();\n\n function onPointerMove(event) {\n if (self.options.keepAspectRatio) {\n const maxHeight =\n (self._height >= self._width ? size.y : size.y * (1 / ratio)) -\n Math.max(\n self.options.minVerticalSpacing,\n self.options.minHorizontalSpacing\n );\n self._height += (curY - event.pageY) * 2 * yMod;\n self._height = Math.max(\n self.options.minHeight,\n self.options.minWidth,\n self._height\n );\n self._height = Math.min(maxHeight, self._height);\n self._width = self._height * ratio;\n } else {\n self._width += (curX - event.pageX) * 2 * xMod;\n self._height += (curY - event.pageY) * 2 * yMod;\n self._width = Math.max(self.options.minWidth, self._width);\n self._height = Math.max(self.options.minHeight, self._height);\n self._width = Math.min(\n size.x - self.options.minHorizontalSpacing,\n self._width\n );\n self._height = Math.min(\n size.y - self.options.minVerticalSpacing,\n self._height\n );\n }\n\n curX = event.pageX;\n curY = event.pageY;\n self._render();\n }\n function onPointerUp() {\n self.map.dragging.enable();\n L.DomEvent.removeListener(mapContainer, \"pointerup\", onPointerUp);\n L.DomEvent.removeListener(mapContainer, \"pointermove\", onPointerMove);\n L.DomEvent.addListener(handle, \"pointerdown\", onPointerDown);\n self.fire(\"change\");\n }\n L.DomEvent.addListener(mapContainer, \"pointermove\", onPointerMove);\n L.DomEvent.addListener(mapContainer, \"pointerup\", onPointerUp);\n }\n L.DomEvent.addListener(handle, \"pointerdown\", onPointerDown);\n },\n\n _onMapResize: function () {\n this._render();\n },\n\n _onMapChange: function () {\n this.fire(\"change\");\n },\n\n _render: function () {\n const size = this.map.getSize();\n const handleOffset = Math.round(this._nwHandle.offsetWidth / 2);\n\n var topBottomWidth = size.x;\n var topBottomHeight = Math.round((size.y - this._height) / 2);\n var leftRightWidth = Math.round((size.x - this._width) / 2);\n var leftRightHeight = size.y - (topBottomHeight * 2);\n\n function setDimensions(element, dimension) {\n element.style.width = dimension.width + \"px\";\n element.style.height = dimension.height + \"px\";\n element.style.top = dimension.top + \"px\";\n element.style.left = dimension.left + \"px\";\n element.style.bottom = dimension.bottom + \"px\";\n element.style.right = dimension.right + \"px\";\n }\n\n setDimensions(this._topShade, {\n width: topBottomWidth,\n height: topBottomHeight,\n top: 0,\n left: 0\n });\n setDimensions(this._bottomShade, {\n width: topBottomWidth,\n height: topBottomHeight,\n top: size.y - topBottomHeight,\n left: 0\n });\n setDimensions(this._leftShade, {\n width: leftRightWidth,\n height: leftRightHeight,\n top: topBottomHeight,\n left: 0\n });\n setDimensions(this._rightShade, {\n width: leftRightWidth,\n height: leftRightHeight,\n top: topBottomHeight,\n left: size.x - leftRightWidth\n });\n\n setDimensions(this._nwHandle, {\n left: leftRightWidth - handleOffset,\n top: topBottomHeight - 7,\n });\n setDimensions(this._neHandle, {\n right: leftRightWidth - handleOffset,\n top: topBottomHeight - 7,\n });\n setDimensions(this._swHandle, {\n left: leftRightWidth - handleOffset,\n bottom: topBottomHeight - 7,\n });\n setDimensions(this._seHandle, {\n right: leftRightWidth - handleOffset,\n bottom: topBottomHeight - 7,\n });\n },\n});\n\nL.areaSelect = function (options) {\n return new L.AreaSelect(options);\n};\n","\n/**\n * @license\n *\n * chroma.js - JavaScript library for color conversions\n * \n * Copyright (c) 2011-2017, Gregor Aisch\n * All rights reserved.\n * \n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n * \n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer.\n * \n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution.\n * \n * 3. The name Gregor Aisch may not be used to endorse or promote products\n * derived from this software without specific prior written permission.\n * \n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL GREGOR AISCH OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\n * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n */\n\n(function() {\n var Color, DEG2RAD, LAB_CONSTANTS, PI, PITHIRD, RAD2DEG, TWOPI, _average_lrgb, _guess_formats, _guess_formats_sorted, _input, _interpolators, abs, atan2, bezier, blend, blend_f, brewer, burn, chroma, clip_rgb, cmyk2rgb, colors, cos, css2rgb, darken, dodge, each, floor, hcg2rgb, hex2rgb, hsi2rgb, hsl2css, hsl2rgb, hsv2rgb, interpolate, interpolate_hsx, interpolate_lab, interpolate_lrgb, interpolate_num, interpolate_rgb, lab2lch, lab2rgb, lab_xyz, lch2lab, lch2rgb, lighten, limit, log, luminance_x, m, max, multiply, normal, num2rgb, overlay, pow, rgb2cmyk, rgb2css, rgb2hcg, rgb2hex, rgb2hsi, rgb2hsl, rgb2hsv, rgb2lab, rgb2lch, rgb2luminance, rgb2num, rgb2temperature, rgb2xyz, rgb_xyz, rnd, root, round, screen, sin, sqrt, temperature2rgb, type, unpack, w3cx11, xyz_lab, xyz_rgb,\n slice = [].slice;\n\n type = (function() {\n\n /*\n for browser-safe type checking+\n ported from jQuery's $.type\n */\n var classToType, len, name, o, ref;\n classToType = {};\n ref = \"Boolean Number String Function Array Date RegExp Undefined Null\".split(\" \");\n for (o = 0, len = ref.length; o < len; o++) {\n name = ref[o];\n classToType[\"[object \" + name + \"]\"] = name.toLowerCase();\n }\n return function(obj) {\n var strType;\n strType = Object.prototype.toString.call(obj);\n return classToType[strType] || \"object\";\n };\n })();\n\n limit = function(x, min, max) {\n if (min == null) {\n min = 0;\n }\n if (max == null) {\n max = 1;\n }\n if (x < min) {\n x = min;\n }\n if (x > max) {\n x = max;\n }\n return x;\n };\n\n unpack = function(args) {\n if (args.length >= 3) {\n return Array.prototype.slice.call(args);\n } else {\n return args[0];\n }\n };\n\n clip_rgb = function(rgb) {\n var i, o;\n rgb._clipped = false;\n rgb._unclipped = rgb.slice(0);\n for (i = o = 0; o < 3; i = ++o) {\n if (i < 3) {\n if (rgb[i] < 0 || rgb[i] > 255) {\n rgb._clipped = true;\n }\n if (rgb[i] < 0) {\n rgb[i] = 0;\n }\n if (rgb[i] > 255) {\n rgb[i] = 255;\n }\n } else if (i === 3) {\n if (rgb[i] < 0) {\n rgb[i] = 0;\n }\n if (rgb[i] > 1) {\n rgb[i] = 1;\n }\n }\n }\n if (!rgb._clipped) {\n delete rgb._unclipped;\n }\n return rgb;\n };\n\n PI = Math.PI, round = Math.round, cos = Math.cos, floor = Math.floor, pow = Math.pow, log = Math.log, sin = Math.sin, sqrt = Math.sqrt, atan2 = Math.atan2, max = Math.max, abs = Math.abs;\n\n TWOPI = PI * 2;\n\n PITHIRD = PI / 3;\n\n DEG2RAD = PI / 180;\n\n RAD2DEG = 180 / PI;\n\n chroma = function() {\n if (arguments[0] instanceof Color) {\n return arguments[0];\n }\n return (function(func, args, ctor) {\n ctor.prototype = func.prototype;\n var child = new ctor, result = func.apply(child, args);\n return Object(result) === result ? result : child;\n })(Color, arguments, function(){});\n };\n\n chroma[\"default\"] = chroma;\n\n _interpolators = [];\n\n if ((typeof module !== \"undefined\" && module !== null) && (module.exports != null)) {\n module.exports = chroma;\n }\n\n if (typeof define === 'function' && define.amd) {\n define([], function() {\n return chroma;\n });\n } else {\n root = typeof exports !== \"undefined\" && exports !== null ? exports : this;\n root.chroma = chroma;\n }\n\n chroma.version = '1.4.1';\n\n _input = {};\n\n _guess_formats = [];\n\n _guess_formats_sorted = false;\n\n Color = (function() {\n function Color() {\n var arg, args, chk, len, len1, me, mode, o, w;\n me = this;\n args = [];\n for (o = 0, len = arguments.length; o < len; o++) {\n arg = arguments[o];\n if (arg != null) {\n args.push(arg);\n }\n }\n if (args.length > 1) {\n mode = args[args.length - 1];\n }\n if (_input[mode] != null) {\n me._rgb = clip_rgb(_input[mode](unpack(args.slice(0, -1))));\n } else {\n if (!_guess_formats_sorted) {\n _guess_formats = _guess_formats.sort(function(a, b) {\n return b.p - a.p;\n });\n _guess_formats_sorted = true;\n }\n for (w = 0, len1 = _guess_formats.length; w < len1; w++) {\n chk = _guess_formats[w];\n mode = chk.test.apply(chk, args);\n if (mode) {\n break;\n }\n }\n if (mode) {\n me._rgb = clip_rgb(_input[mode].apply(_input, args));\n }\n }\n if (me._rgb == null) {\n console.warn('unknown format: ' + args);\n }\n if (me._rgb == null) {\n me._rgb = [0, 0, 0];\n }\n if (me._rgb.length === 3) {\n me._rgb.push(1);\n }\n }\n\n Color.prototype.toString = function() {\n return this.hex();\n };\n\n return Color;\n\n })();\n\n chroma._input = _input;\n\n\n /**\n \tColorBrewer colors for chroma.js\n \n \tCopyright (c) 2002 Cynthia Brewer, Mark Harrower, and The \n \tPennsylvania State University.\n \n \tLicensed under the Apache License, Version 2.0 (the \"License\"); \n \tyou may not use this file except in compliance with the License.\n \tYou may obtain a copy of the License at\t\n \thttp://www.apache.org/licenses/LICENSE-2.0\n \n \tUnless required by applicable law or agreed to in writing, software distributed\n \tunder the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n \tCONDITIONS OF ANY KIND, either express or implied. See the License for the\n \tspecific language governing permissions and limitations under the License.\n \n @preserve\n */\n\n chroma.brewer = brewer = {\n OrRd: ['#fff7ec', '#fee8c8', '#fdd49e', '#fdbb84', '#fc8d59', '#ef6548', '#d7301f', '#b30000', '#7f0000'],\n PuBu: ['#fff7fb', '#ece7f2', '#d0d1e6', '#a6bddb', '#74a9cf', '#3690c0', '#0570b0', '#045a8d', '#023858'],\n BuPu: ['#f7fcfd', '#e0ecf4', '#bfd3e6', '#9ebcda', '#8c96c6', '#8c6bb1', '#88419d', '#810f7c', '#4d004b'],\n Oranges: ['#fff5eb', '#fee6ce', '#fdd0a2', '#fdae6b', '#fd8d3c', '#f16913', '#d94801', '#a63603', '#7f2704'],\n BuGn: ['#f7fcfd', '#e5f5f9', '#ccece6', '#99d8c9', '#66c2a4', '#41ae76', '#238b45', '#006d2c', '#00441b'],\n YlOrBr: ['#ffffe5', '#fff7bc', '#fee391', '#fec44f', '#fe9929', '#ec7014', '#cc4c02', '#993404', '#662506'],\n YlGn: ['#ffffe5', '#f7fcb9', '#d9f0a3', '#addd8e', '#78c679', '#41ab5d', '#238443', '#006837', '#004529'],\n Reds: ['#fff5f0', '#fee0d2', '#fcbba1', '#fc9272', '#fb6a4a', '#ef3b2c', '#cb181d', '#a50f15', '#67000d'],\n RdPu: ['#fff7f3', '#fde0dd', '#fcc5c0', '#fa9fb5', '#f768a1', '#dd3497', '#ae017e', '#7a0177', '#49006a'],\n Greens: ['#f7fcf5', '#e5f5e0', '#c7e9c0', '#a1d99b', '#74c476', '#41ab5d', '#238b45', '#006d2c', '#00441b'],\n YlGnBu: ['#ffffd9', '#edf8b1', '#c7e9b4', '#7fcdbb', '#41b6c4', '#1d91c0', '#225ea8', '#253494', '#081d58'],\n Purples: ['#fcfbfd', '#efedf5', '#dadaeb', '#bcbddc', '#9e9ac8', '#807dba', '#6a51a3', '#54278f', '#3f007d'],\n GnBu: ['#f7fcf0', '#e0f3db', '#ccebc5', '#a8ddb5', '#7bccc4', '#4eb3d3', '#2b8cbe', '#0868ac', '#084081'],\n Greys: ['#ffffff', '#f0f0f0', '#d9d9d9', '#bdbdbd', '#969696', '#737373', '#525252', '#252525', '#000000'],\n YlOrRd: ['#ffffcc', '#ffeda0', '#fed976', '#feb24c', '#fd8d3c', '#fc4e2a', '#e31a1c', '#bd0026', '#800026'],\n PuRd: ['#f7f4f9', '#e7e1ef', '#d4b9da', '#c994c7', '#df65b0', '#e7298a', '#ce1256', '#980043', '#67001f'],\n Blues: ['#f7fbff', '#deebf7', '#c6dbef', '#9ecae1', '#6baed6', '#4292c6', '#2171b5', '#08519c', '#08306b'],\n PuBuGn: ['#fff7fb', '#ece2f0', '#d0d1e6', '#a6bddb', '#67a9cf', '#3690c0', '#02818a', '#016c59', '#014636'],\n Viridis: ['#440154', '#482777', '#3f4a8a', '#31678e', '#26838f', '#1f9d8a', '#6cce5a', '#b6de2b', '#fee825'],\n Spectral: ['#9e0142', '#d53e4f', '#f46d43', '#fdae61', '#fee08b', '#ffffbf', '#e6f598', '#abdda4', '#66c2a5', '#3288bd', '#5e4fa2'],\n RdYlGn: ['#a50026', '#d73027', '#f46d43', '#fdae61', '#fee08b', '#ffffbf', '#d9ef8b', '#a6d96a', '#66bd63', '#1a9850', '#006837'],\n RdBu: ['#67001f', '#b2182b', '#d6604d', '#f4a582', '#fddbc7', '#f7f7f7', '#d1e5f0', '#92c5de', '#4393c3', '#2166ac', '#053061'],\n PiYG: ['#8e0152', '#c51b7d', '#de77ae', '#f1b6da', '#fde0ef', '#f7f7f7', '#e6f5d0', '#b8e186', '#7fbc41', '#4d9221', '#276419'],\n PRGn: ['#40004b', '#762a83', '#9970ab', '#c2a5cf', '#e7d4e8', '#f7f7f7', '#d9f0d3', '#a6dba0', '#5aae61', '#1b7837', '#00441b'],\n RdYlBu: ['#a50026', '#d73027', '#f46d43', '#fdae61', '#fee090', '#ffffbf', '#e0f3f8', '#abd9e9', '#74add1', '#4575b4', '#313695'],\n BrBG: ['#543005', '#8c510a', '#bf812d', '#dfc27d', '#f6e8c3', '#f5f5f5', '#c7eae5', '#80cdc1', '#35978f', '#01665e', '#003c30'],\n RdGy: ['#67001f', '#b2182b', '#d6604d', '#f4a582', '#fddbc7', '#ffffff', '#e0e0e0', '#bababa', '#878787', '#4d4d4d', '#1a1a1a'],\n PuOr: ['#7f3b08', '#b35806', '#e08214', '#fdb863', '#fee0b6', '#f7f7f7', '#d8daeb', '#b2abd2', '#8073ac', '#542788', '#2d004b'],\n Set2: ['#66c2a5', '#fc8d62', '#8da0cb', '#e78ac3', '#a6d854', '#ffd92f', '#e5c494', '#b3b3b3'],\n Accent: ['#7fc97f', '#beaed4', '#fdc086', '#ffff99', '#386cb0', '#f0027f', '#bf5b17', '#666666'],\n Set1: ['#e41a1c', '#377eb8', '#4daf4a', '#984ea3', '#ff7f00', '#ffff33', '#a65628', '#f781bf', '#999999'],\n Set3: ['#8dd3c7', '#ffffb3', '#bebada', '#fb8072', '#80b1d3', '#fdb462', '#b3de69', '#fccde5', '#d9d9d9', '#bc80bd', '#ccebc5', '#ffed6f'],\n Dark2: ['#1b9e77', '#d95f02', '#7570b3', '#e7298a', '#66a61e', '#e6ab02', '#a6761d', '#666666'],\n Paired: ['#a6cee3', '#1f78b4', '#b2df8a', '#33a02c', '#fb9a99', '#e31a1c', '#fdbf6f', '#ff7f00', '#cab2d6', '#6a3d9a', '#ffff99', '#b15928'],\n Pastel2: ['#b3e2cd', '#fdcdac', '#cbd5e8', '#f4cae4', '#e6f5c9', '#fff2ae', '#f1e2cc', '#cccccc'],\n Pastel1: ['#fbb4ae', '#b3cde3', '#ccebc5', '#decbe4', '#fed9a6', '#ffffcc', '#e5d8bd', '#fddaec', '#f2f2f2']\n };\n\n (function() {\n var key, results;\n results = [];\n for (key in brewer) {\n results.push(brewer[key.toLowerCase()] = brewer[key]);\n }\n return results;\n })();\n\n\n /**\n \tX11 color names\n \n \thttp://www.w3.org/TR/css3-color/#svg-color\n */\n\n w3cx11 = {\n aliceblue: '#f0f8ff',\n antiquewhite: '#faebd7',\n aqua: '#00ffff',\n aquamarine: '#7fffd4',\n azure: '#f0ffff',\n beige: '#f5f5dc',\n bisque: '#ffe4c4',\n black: '#000000',\n blanchedalmond: '#ffebcd',\n blue: '#0000ff',\n blueviolet: '#8a2be2',\n brown: '#a52a2a',\n burlywood: '#deb887',\n cadetblue: '#5f9ea0',\n chartreuse: '#7fff00',\n chocolate: '#d2691e',\n coral: '#ff7f50',\n cornflower: '#6495ed',\n cornflowerblue: '#6495ed',\n cornsilk: '#fff8dc',\n crimson: '#dc143c',\n cyan: '#00ffff',\n darkblue: '#00008b',\n darkcyan: '#008b8b',\n darkgoldenrod: '#b8860b',\n darkgray: '#a9a9a9',\n darkgreen: '#006400',\n darkgrey: '#a9a9a9',\n darkkhaki: '#bdb76b',\n darkmagenta: '#8b008b',\n darkolivegreen: '#556b2f',\n darkorange: '#ff8c00',\n darkorchid: '#9932cc',\n darkred: '#8b0000',\n darksalmon: '#e9967a',\n darkseagreen: '#8fbc8f',\n darkslateblue: '#483d8b',\n darkslategray: '#2f4f4f',\n darkslategrey: '#2f4f4f',\n darkturquoise: '#00ced1',\n darkviolet: '#9400d3',\n deeppink: '#ff1493',\n deepskyblue: '#00bfff',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1e90ff',\n firebrick: '#b22222',\n floralwhite: '#fffaf0',\n forestgreen: '#228b22',\n fuchsia: '#ff00ff',\n gainsboro: '#dcdcdc',\n ghostwhite: '#f8f8ff',\n gold: '#ffd700',\n goldenrod: '#daa520',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#adff2f',\n grey: '#808080',\n honeydew: '#f0fff0',\n hotpink: '#ff69b4',\n indianred: '#cd5c5c',\n indigo: '#4b0082',\n ivory: '#fffff0',\n khaki: '#f0e68c',\n laserlemon: '#ffff54',\n lavender: '#e6e6fa',\n lavenderblush: '#fff0f5',\n lawngreen: '#7cfc00',\n lemonchiffon: '#fffacd',\n lightblue: '#add8e6',\n lightcoral: '#f08080',\n lightcyan: '#e0ffff',\n lightgoldenrod: '#fafad2',\n lightgoldenrodyellow: '#fafad2',\n lightgray: '#d3d3d3',\n lightgreen: '#90ee90',\n lightgrey: '#d3d3d3',\n lightpink: '#ffb6c1',\n lightsalmon: '#ffa07a',\n lightseagreen: '#20b2aa',\n lightskyblue: '#87cefa',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#b0c4de',\n lightyellow: '#ffffe0',\n lime: '#00ff00',\n limegreen: '#32cd32',\n linen: '#faf0e6',\n magenta: '#ff00ff',\n maroon: '#800000',\n maroon2: '#7f0000',\n maroon3: '#b03060',\n mediumaquamarine: '#66cdaa',\n mediumblue: '#0000cd',\n mediumorchid: '#ba55d3',\n mediumpurple: '#9370db',\n mediumseagreen: '#3cb371',\n mediumslateblue: '#7b68ee',\n mediumspringgreen: '#00fa9a',\n mediumturquoise: '#48d1cc',\n mediumvioletred: '#c71585',\n midnightblue: '#191970',\n mintcream: '#f5fffa',\n mistyrose: '#ffe4e1',\n moccasin: '#ffe4b5',\n navajowhite: '#ffdead',\n navy: '#000080',\n oldlace: '#fdf5e6',\n olive: '#808000',\n olivedrab: '#6b8e23',\n orange: '#ffa500',\n orangered: '#ff4500',\n orchid: '#da70d6',\n palegoldenrod: '#eee8aa',\n palegreen: '#98fb98',\n paleturquoise: '#afeeee',\n palevioletred: '#db7093',\n papayawhip: '#ffefd5',\n peachpuff: '#ffdab9',\n peru: '#cd853f',\n pink: '#ffc0cb',\n plum: '#dda0dd',\n powderblue: '#b0e0e6',\n purple: '#800080',\n purple2: '#7f007f',\n purple3: '#a020f0',\n rebeccapurple: '#663399',\n red: '#ff0000',\n rosybrown: '#bc8f8f',\n royalblue: '#4169e1',\n saddlebrown: '#8b4513',\n salmon: '#fa8072',\n sandybrown: '#f4a460',\n seagreen: '#2e8b57',\n seashell: '#fff5ee',\n sienna: '#a0522d',\n silver: '#c0c0c0',\n skyblue: '#87ceeb',\n slateblue: '#6a5acd',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#fffafa',\n springgreen: '#00ff7f',\n steelblue: '#4682b4',\n tan: '#d2b48c',\n teal: '#008080',\n thistle: '#d8bfd8',\n tomato: '#ff6347',\n turquoise: '#40e0d0',\n violet: '#ee82ee',\n wheat: '#f5deb3',\n white: '#ffffff',\n whitesmoke: '#f5f5f5',\n yellow: '#ffff00',\n yellowgreen: '#9acd32'\n };\n\n chroma.colors = colors = w3cx11;\n\n lab2rgb = function() {\n var a, args, b, g, l, r, x, y, z;\n args = unpack(arguments);\n l = args[0], a = args[1], b = args[2];\n y = (l + 16) / 116;\n x = isNaN(a) ? y : y + a / 500;\n z = isNaN(b) ? y : y - b / 200;\n y = LAB_CONSTANTS.Yn * lab_xyz(y);\n x = LAB_CONSTANTS.Xn * lab_xyz(x);\n z = LAB_CONSTANTS.Zn * lab_xyz(z);\n r = xyz_rgb(3.2404542 * x - 1.5371385 * y - 0.4985314 * z);\n g = xyz_rgb(-0.9692660 * x + 1.8760108 * y + 0.0415560 * z);\n b = xyz_rgb(0.0556434 * x - 0.2040259 * y + 1.0572252 * z);\n return [r, g, b, args.length > 3 ? args[3] : 1];\n };\n\n xyz_rgb = function(r) {\n return 255 * (r <= 0.00304 ? 12.92 * r : 1.055 * pow(r, 1 / 2.4) - 0.055);\n };\n\n lab_xyz = function(t) {\n if (t > LAB_CONSTANTS.t1) {\n return t * t * t;\n } else {\n return LAB_CONSTANTS.t2 * (t - LAB_CONSTANTS.t0);\n }\n };\n\n LAB_CONSTANTS = {\n Kn: 18,\n Xn: 0.950470,\n Yn: 1,\n Zn: 1.088830,\n t0: 0.137931034,\n t1: 0.206896552,\n t2: 0.12841855,\n t3: 0.008856452\n };\n\n rgb2lab = function() {\n var b, g, r, ref, ref1, x, y, z;\n ref = unpack(arguments), r = ref[0], g = ref[1], b = ref[2];\n ref1 = rgb2xyz(r, g, b), x = ref1[0], y = ref1[1], z = ref1[2];\n return [116 * y - 16, 500 * (x - y), 200 * (y - z)];\n };\n\n rgb_xyz = function(r) {\n if ((r /= 255) <= 0.04045) {\n return r / 12.92;\n } else {\n return pow((r + 0.055) / 1.055, 2.4);\n }\n };\n\n xyz_lab = function(t) {\n if (t > LAB_CONSTANTS.t3) {\n return pow(t, 1 / 3);\n } else {\n return t / LAB_CONSTANTS.t2 + LAB_CONSTANTS.t0;\n }\n };\n\n rgb2xyz = function() {\n var b, g, r, ref, x, y, z;\n ref = unpack(arguments), r = ref[0], g = ref[1], b = ref[2];\n r = rgb_xyz(r);\n g = rgb_xyz(g);\n b = rgb_xyz(b);\n x = xyz_lab((0.4124564 * r + 0.3575761 * g + 0.1804375 * b) / LAB_CONSTANTS.Xn);\n y = xyz_lab((0.2126729 * r + 0.7151522 * g + 0.0721750 * b) / LAB_CONSTANTS.Yn);\n z = xyz_lab((0.0193339 * r + 0.1191920 * g + 0.9503041 * b) / LAB_CONSTANTS.Zn);\n return [x, y, z];\n };\n\n chroma.lab = function() {\n return (function(func, args, ctor) {\n ctor.prototype = func.prototype;\n var child = new ctor, result = func.apply(child, args);\n return Object(result) === result ? result : child;\n })(Color, slice.call(arguments).concat(['lab']), function(){});\n };\n\n _input.lab = lab2rgb;\n\n Color.prototype.lab = function() {\n return rgb2lab(this._rgb);\n };\n\n bezier = function(colors) {\n var I, I0, I1, c, lab0, lab1, lab2, lab3, ref, ref1, ref2;\n colors = (function() {\n var len, o, results;\n results = [];\n for (o = 0, len = colors.length; o < len; o++) {\n c = colors[o];\n results.push(chroma(c));\n }\n return results;\n })();\n if (colors.length === 2) {\n ref = (function() {\n var len, o, results;\n results = [];\n for (o = 0, len = colors.length; o < len; o++) {\n c = colors[o];\n results.push(c.lab());\n }\n return results;\n })(), lab0 = ref[0], lab1 = ref[1];\n I = function(t) {\n var i, lab;\n lab = (function() {\n var o, results;\n results = [];\n for (i = o = 0; o <= 2; i = ++o) {\n results.push(lab0[i] + t * (lab1[i] - lab0[i]));\n }\n return results;\n })();\n return chroma.lab.apply(chroma, lab);\n };\n } else if (colors.length === 3) {\n ref1 = (function() {\n var len, o, results;\n results = [];\n for (o = 0, len = colors.length; o < len; o++) {\n c = colors[o];\n results.push(c.lab());\n }\n return results;\n })(), lab0 = ref1[0], lab1 = ref1[1], lab2 = ref1[2];\n I = function(t) {\n var i, lab;\n lab = (function() {\n var o, results;\n results = [];\n for (i = o = 0; o <= 2; i = ++o) {\n results.push((1 - t) * (1 - t) * lab0[i] + 2 * (1 - t) * t * lab1[i] + t * t * lab2[i]);\n }\n return results;\n })();\n return chroma.lab.apply(chroma, lab);\n };\n } else if (colors.length === 4) {\n ref2 = (function() {\n var len, o, results;\n results = [];\n for (o = 0, len = colors.length; o < len; o++) {\n c = colors[o];\n results.push(c.lab());\n }\n return results;\n })(), lab0 = ref2[0], lab1 = ref2[1], lab2 = ref2[2], lab3 = ref2[3];\n I = function(t) {\n var i, lab;\n lab = (function() {\n var o, results;\n results = [];\n for (i = o = 0; o <= 2; i = ++o) {\n results.push((1 - t) * (1 - t) * (1 - t) * lab0[i] + 3 * (1 - t) * (1 - t) * t * lab1[i] + 3 * (1 - t) * t * t * lab2[i] + t * t * t * lab3[i]);\n }\n return results;\n })();\n return chroma.lab.apply(chroma, lab);\n };\n } else if (colors.length === 5) {\n I0 = bezier(colors.slice(0, 3));\n I1 = bezier(colors.slice(2, 5));\n I = function(t) {\n if (t < 0.5) {\n return I0(t * 2);\n } else {\n return I1((t - 0.5) * 2);\n }\n };\n }\n return I;\n };\n\n chroma.bezier = function(colors) {\n var f;\n f = bezier(colors);\n f.scale = function() {\n return chroma.scale(f);\n };\n return f;\n };\n\n chroma.cubehelix = function(start, rotations, hue, gamma, lightness) {\n var dh, dl, f;\n if (start == null) {\n start = 300;\n }\n if (rotations == null) {\n rotations = -1.5;\n }\n if (hue == null) {\n hue = 1;\n }\n if (gamma == null) {\n gamma = 1;\n }\n if (lightness == null) {\n lightness = [0, 1];\n }\n dh = 0;\n if (type(lightness) === 'array') {\n dl = lightness[1] - lightness[0];\n } else {\n dl = 0;\n lightness = [lightness, lightness];\n }\n f = function(fract) {\n var a, amp, b, cos_a, g, h, l, r, sin_a;\n a = TWOPI * ((start + 120) / 360 + rotations * fract);\n l = pow(lightness[0] + dl * fract, gamma);\n h = dh !== 0 ? hue[0] + fract * dh : hue;\n amp = h * l * (1 - l) / 2;\n cos_a = cos(a);\n sin_a = sin(a);\n r = l + amp * (-0.14861 * cos_a + 1.78277 * sin_a);\n g = l + amp * (-0.29227 * cos_a - 0.90649 * sin_a);\n b = l + amp * (+1.97294 * cos_a);\n return chroma(clip_rgb([r * 255, g * 255, b * 255, 1]));\n };\n f.start = function(s) {\n if (s == null) {\n return start;\n }\n start = s;\n return f;\n };\n f.rotations = function(r) {\n if (r == null) {\n return rotations;\n }\n rotations = r;\n return f;\n };\n f.gamma = function(g) {\n if (g == null) {\n return gamma;\n }\n gamma = g;\n return f;\n };\n f.hue = function(h) {\n if (h == null) {\n return hue;\n }\n hue = h;\n if (type(hue) === 'array') {\n dh = hue[1] - hue[0];\n if (dh === 0) {\n hue = hue[1];\n }\n } else {\n dh = 0;\n }\n return f;\n };\n f.lightness = function(h) {\n if (h == null) {\n return lightness;\n }\n if (type(h) === 'array') {\n lightness = h;\n dl = h[1] - h[0];\n } else {\n lightness = [h, h];\n dl = 0;\n }\n return f;\n };\n f.scale = function() {\n return chroma.scale(f);\n };\n f.hue(hue);\n return f;\n };\n\n chroma.random = function() {\n var code, digits, i, o;\n digits = '0123456789abcdef';\n code = '#';\n for (i = o = 0; o < 6; i = ++o) {\n code += digits.charAt(floor(Math.random() * 16));\n }\n return new Color(code);\n };\n\n _interpolators = [];\n\n interpolate = function(col1, col2, f, m) {\n var interpol, len, o, res;\n if (f == null) {\n f = 0.5;\n }\n if (m == null) {\n m = 'rgb';\n }\n\n /*\n interpolates between colors\n f = 0 --> me\n f = 1 --> col\n */\n if (type(col1) !== 'object') {\n col1 = chroma(col1);\n }\n if (type(col2) !== 'object') {\n col2 = chroma(col2);\n }\n for (o = 0, len = _interpolators.length; o < len; o++) {\n interpol = _interpolators[o];\n if (m === interpol[0]) {\n res = interpol[1](col1, col2, f, m);\n break;\n }\n }\n if (res == null) {\n throw \"color mode \" + m + \" is not supported\";\n }\n return res.alpha(col1.alpha() + f * (col2.alpha() - col1.alpha()));\n };\n\n chroma.interpolate = interpolate;\n\n Color.prototype.interpolate = function(col2, f, m) {\n return interpolate(this, col2, f, m);\n };\n\n chroma.mix = interpolate;\n\n Color.prototype.mix = Color.prototype.interpolate;\n\n _input.rgb = function() {\n var k, ref, results, v;\n ref = unpack(arguments);\n results = [];\n for (k in ref) {\n v = ref[k];\n results.push(v);\n }\n return results;\n };\n\n chroma.rgb = function() {\n return (function(func, args, ctor) {\n ctor.prototype = func.prototype;\n var child = new ctor, result = func.apply(child, args);\n return Object(result) === result ? result : child;\n })(Color, slice.call(arguments).concat(['rgb']), function(){});\n };\n\n Color.prototype.rgb = function(round) {\n if (round == null) {\n round = true;\n }\n if (round) {\n return this._rgb.map(Math.round).slice(0, 3);\n } else {\n return this._rgb.slice(0, 3);\n }\n };\n\n Color.prototype.rgba = function(round) {\n if (round == null) {\n round = true;\n }\n if (!round) {\n return this._rgb.slice(0);\n }\n return [Math.round(this._rgb[0]), Math.round(this._rgb[1]), Math.round(this._rgb[2]), this._rgb[3]];\n };\n\n _guess_formats.push({\n p: 3,\n test: function(n) {\n var a;\n a = unpack(arguments);\n if (type(a) === 'array' && a.length === 3) {\n return 'rgb';\n }\n if (a.length === 4 && type(a[3]) === \"number\" && a[3] >= 0 && a[3] <= 1) {\n return 'rgb';\n }\n }\n });\n\n _input.lrgb = _input.rgb;\n\n interpolate_lrgb = function(col1, col2, f, m) {\n var xyz0, xyz1;\n xyz0 = col1._rgb;\n xyz1 = col2._rgb;\n return new Color(sqrt(pow(xyz0[0], 2) * (1 - f) + pow(xyz1[0], 2) * f), sqrt(pow(xyz0[1], 2) * (1 - f) + pow(xyz1[1], 2) * f), sqrt(pow(xyz0[2], 2) * (1 - f) + pow(xyz1[2], 2) * f), m);\n };\n\n _average_lrgb = function(colors) {\n var col, f, len, o, rgb, xyz;\n f = 1 / colors.length;\n xyz = [0, 0, 0, 0];\n for (o = 0, len = colors.length; o < len; o++) {\n col = colors[o];\n rgb = col._rgb;\n xyz[0] += pow(rgb[0], 2) * f;\n xyz[1] += pow(rgb[1], 2) * f;\n xyz[2] += pow(rgb[2], 2) * f;\n xyz[3] += rgb[3] * f;\n }\n xyz[0] = sqrt(xyz[0]);\n xyz[1] = sqrt(xyz[1]);\n xyz[2] = sqrt(xyz[2]);\n if (xyz[3] > 1) {\n xyz[3] = 1;\n }\n return new Color(clip_rgb(xyz));\n };\n\n _interpolators.push(['lrgb', interpolate_lrgb]);\n\n chroma.average = function(colors, mode) {\n var A, alpha, c, cnt, dx, dy, first, i, l, len, o, xyz, xyz2;\n if (mode == null) {\n mode = 'rgb';\n }\n l = colors.length;\n colors = colors.map(function(c) {\n return chroma(c);\n });\n first = colors.splice(0, 1)[0];\n if (mode === 'lrgb') {\n return _average_lrgb(colors);\n }\n xyz = first.get(mode);\n cnt = [];\n dx = 0;\n dy = 0;\n for (i in xyz) {\n xyz[i] = xyz[i] || 0;\n cnt.push(isNaN(xyz[i]) ? 0 : 1);\n if (mode.charAt(i) === 'h' && !isNaN(xyz[i])) {\n A = xyz[i] / 180 * PI;\n dx += cos(A);\n dy += sin(A);\n }\n }\n alpha = first.alpha();\n for (o = 0, len = colors.length; o < len; o++) {\n c = colors[o];\n xyz2 = c.get(mode);\n alpha += c.alpha();\n for (i in xyz) {\n if (!isNaN(xyz2[i])) {\n cnt[i] += 1;\n if (mode.charAt(i) === 'h') {\n A = xyz2[i] / 180 * PI;\n dx += cos(A);\n dy += sin(A);\n } else {\n xyz[i] += xyz2[i];\n }\n }\n }\n }\n for (i in xyz) {\n if (mode.charAt(i) === 'h') {\n A = atan2(dy / cnt[i], dx / cnt[i]) / PI * 180;\n while (A < 0) {\n A += 360;\n }\n while (A >= 360) {\n A -= 360;\n }\n xyz[i] = A;\n } else {\n xyz[i] = xyz[i] / cnt[i];\n }\n }\n return chroma(xyz, mode).alpha(alpha / l);\n };\n\n hex2rgb = function(hex) {\n var a, b, g, r, rgb, u;\n if (hex.match(/^#?([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/)) {\n if (hex.length === 4 || hex.length === 7) {\n hex = hex.substr(1);\n }\n if (hex.length === 3) {\n hex = hex.split(\"\");\n hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];\n }\n u = parseInt(hex, 16);\n r = u >> 16;\n g = u >> 8 & 0xFF;\n b = u & 0xFF;\n return [r, g, b, 1];\n }\n if (hex.match(/^#?([A-Fa-f0-9]{8})$/)) {\n if (hex.length === 9) {\n hex = hex.substr(1);\n }\n u = parseInt(hex, 16);\n r = u >> 24 & 0xFF;\n g = u >> 16 & 0xFF;\n b = u >> 8 & 0xFF;\n a = round((u & 0xFF) / 0xFF * 100) / 100;\n return [r, g, b, a];\n }\n if ((_input.css != null) && (rgb = _input.css(hex))) {\n return rgb;\n }\n throw \"unknown color: \" + hex;\n };\n\n rgb2hex = function(channels, mode) {\n var a, b, g, hxa, r, str, u;\n if (mode == null) {\n mode = 'auto';\n }\n r = channels[0], g = channels[1], b = channels[2], a = channels[3];\n if (mode === 'auto') {\n mode = a < 1 ? 'rgba' : 'rgb';\n }\n r = Math.round(r);\n g = Math.round(g);\n b = Math.round(b);\n u = r << 16 | g << 8 | b;\n str = \"000000\" + u.toString(16);\n str = str.substr(str.length - 6);\n hxa = '0' + round(a * 255).toString(16);\n hxa = hxa.substr(hxa.length - 2);\n return \"#\" + (function() {\n switch (mode.toLowerCase()) {\n case 'rgba':\n return str + hxa;\n case 'argb':\n return hxa + str;\n default:\n return str;\n }\n })();\n };\n\n _input.hex = function(h) {\n return hex2rgb(h);\n };\n\n chroma.hex = function() {\n return (function(func, args, ctor) {\n ctor.prototype = func.prototype;\n var child = new ctor, result = func.apply(child, args);\n return Object(result) === result ? result : child;\n })(Color, slice.call(arguments).concat(['hex']), function(){});\n };\n\n Color.prototype.hex = function(mode) {\n if (mode == null) {\n mode = 'auto';\n }\n return rgb2hex(this._rgb, mode);\n };\n\n _guess_formats.push({\n p: 4,\n test: function(n) {\n if (arguments.length === 1 && type(n) === \"string\") {\n return 'hex';\n }\n }\n });\n\n hsl2rgb = function() {\n var args, b, c, g, h, i, l, o, r, ref, s, t1, t2, t3;\n args = unpack(arguments);\n h = args[0], s = args[1], l = args[2];\n if (s === 0) {\n r = g = b = l * 255;\n } else {\n t3 = [0, 0, 0];\n c = [0, 0, 0];\n t2 = l < 0.5 ? l * (1 + s) : l + s - l * s;\n t1 = 2 * l - t2;\n h /= 360;\n t3[0] = h + 1 / 3;\n t3[1] = h;\n t3[2] = h - 1 / 3;\n for (i = o = 0; o <= 2; i = ++o) {\n if (t3[i] < 0) {\n t3[i] += 1;\n }\n if (t3[i] > 1) {\n t3[i] -= 1;\n }\n if (6 * t3[i] < 1) {\n c[i] = t1 + (t2 - t1) * 6 * t3[i];\n } else if (2 * t3[i] < 1) {\n c[i] = t2;\n } else if (3 * t3[i] < 2) {\n c[i] = t1 + (t2 - t1) * ((2 / 3) - t3[i]) * 6;\n } else {\n c[i] = t1;\n }\n }\n ref = [round(c[0] * 255), round(c[1] * 255), round(c[2] * 255)], r = ref[0], g = ref[1], b = ref[2];\n }\n if (args.length > 3) {\n return [r, g, b, args[3]];\n } else {\n return [r, g, b];\n }\n };\n\n rgb2hsl = function(r, g, b) {\n var h, l, min, ref, s;\n if (r !== void 0 && r.length >= 3) {\n ref = r, r = ref[0], g = ref[1], b = ref[2];\n }\n r /= 255;\n g /= 255;\n b /= 255;\n min = Math.min(r, g, b);\n max = Math.max(r, g, b);\n l = (max + min) / 2;\n if (max === min) {\n s = 0;\n h = Number.NaN;\n } else {\n s = l < 0.5 ? (max - min) / (max + min) : (max - min) / (2 - max - min);\n }\n if (r === max) {\n h = (g - b) / (max - min);\n } else if (g === max) {\n h = 2 + (b - r) / (max - min);\n } else if (b === max) {\n h = 4 + (r - g) / (max - min);\n }\n h *= 60;\n if (h < 0) {\n h += 360;\n }\n return [h, s, l];\n };\n\n chroma.hsl = function() {\n return (function(func, args, ctor) {\n ctor.prototype = func.prototype;\n var child = new ctor, result = func.apply(child, args);\n return Object(result) === result ? result : child;\n })(Color, slice.call(arguments).concat(['hsl']), function(){});\n };\n\n _input.hsl = hsl2rgb;\n\n Color.prototype.hsl = function() {\n return rgb2hsl(this._rgb);\n };\n\n hsv2rgb = function() {\n var args, b, f, g, h, i, p, q, r, ref, ref1, ref2, ref3, ref4, ref5, s, t, v;\n args = unpack(arguments);\n h = args[0], s = args[1], v = args[2];\n v *= 255;\n if (s === 0) {\n r = g = b = v;\n } else {\n if (h === 360) {\n h = 0;\n }\n if (h > 360) {\n h -= 360;\n }\n if (h < 0) {\n h += 360;\n }\n h /= 60;\n i = floor(h);\n f = h - i;\n p = v * (1 - s);\n q = v * (1 - s * f);\n t = v * (1 - s * (1 - f));\n switch (i) {\n case 0:\n ref = [v, t, p], r = ref[0], g = ref[1], b = ref[2];\n break;\n case 1:\n ref1 = [q, v, p], r = ref1[0], g = ref1[1], b = ref1[2];\n break;\n case 2:\n ref2 = [p, v, t], r = ref2[0], g = ref2[1], b = ref2[2];\n break;\n case 3:\n ref3 = [p, q, v], r = ref3[0], g = ref3[1], b = ref3[2];\n break;\n case 4:\n ref4 = [t, p, v], r = ref4[0], g = ref4[1], b = ref4[2];\n break;\n case 5:\n ref5 = [v, p, q], r = ref5[0], g = ref5[1], b = ref5[2];\n }\n }\n return [r, g, b, args.length > 3 ? args[3] : 1];\n };\n\n rgb2hsv = function() {\n var b, delta, g, h, min, r, ref, s, v;\n ref = unpack(arguments), r = ref[0], g = ref[1], b = ref[2];\n min = Math.min(r, g, b);\n max = Math.max(r, g, b);\n delta = max - min;\n v = max / 255.0;\n if (max === 0) {\n h = Number.NaN;\n s = 0;\n } else {\n s = delta / max;\n if (r === max) {\n h = (g - b) / delta;\n }\n if (g === max) {\n h = 2 + (b - r) / delta;\n }\n if (b === max) {\n h = 4 + (r - g) / delta;\n }\n h *= 60;\n if (h < 0) {\n h += 360;\n }\n }\n return [h, s, v];\n };\n\n chroma.hsv = function() {\n return (function(func, args, ctor) {\n ctor.prototype = func.prototype;\n var child = new ctor, result = func.apply(child, args);\n return Object(result) === result ? result : child;\n })(Color, slice.call(arguments).concat(['hsv']), function(){});\n };\n\n _input.hsv = hsv2rgb;\n\n Color.prototype.hsv = function() {\n return rgb2hsv(this._rgb);\n };\n\n num2rgb = function(num) {\n var b, g, r;\n if (type(num) === \"number\" && num >= 0 && num <= 0xFFFFFF) {\n r = num >> 16;\n g = (num >> 8) & 0xFF;\n b = num & 0xFF;\n return [r, g, b, 1];\n }\n console.warn(\"unknown num color: \" + num);\n return [0, 0, 0, 1];\n };\n\n rgb2num = function() {\n var b, g, r, ref;\n ref = unpack(arguments), r = ref[0], g = ref[1], b = ref[2];\n return (r << 16) + (g << 8) + b;\n };\n\n chroma.num = function(num) {\n return new Color(num, 'num');\n };\n\n Color.prototype.num = function(mode) {\n if (mode == null) {\n mode = 'rgb';\n }\n return rgb2num(this._rgb, mode);\n };\n\n _input.num = num2rgb;\n\n _guess_formats.push({\n p: 1,\n test: function(n) {\n if (arguments.length === 1 && type(n) === \"number\" && n >= 0 && n <= 0xFFFFFF) {\n return 'num';\n }\n }\n });\n\n hcg2rgb = function() {\n var _c, _g, args, b, c, f, g, h, i, p, q, r, ref, ref1, ref2, ref3, ref4, ref5, t, v;\n args = unpack(arguments);\n h = args[0], c = args[1], _g = args[2];\n c = c / 100;\n g = g / 100 * 255;\n _c = c * 255;\n if (c === 0) {\n r = g = b = _g;\n } else {\n if (h === 360) {\n h = 0;\n }\n if (h > 360) {\n h -= 360;\n }\n if (h < 0) {\n h += 360;\n }\n h /= 60;\n i = floor(h);\n f = h - i;\n p = _g * (1 - c);\n q = p + _c * (1 - f);\n t = p + _c * f;\n v = p + _c;\n switch (i) {\n case 0:\n ref = [v, t, p], r = ref[0], g = ref[1], b = ref[2];\n break;\n case 1:\n ref1 = [q, v, p], r = ref1[0], g = ref1[1], b = ref1[2];\n break;\n case 2:\n ref2 = [p, v, t], r = ref2[0], g = ref2[1], b = ref2[2];\n break;\n case 3:\n ref3 = [p, q, v], r = ref3[0], g = ref3[1], b = ref3[2];\n break;\n case 4:\n ref4 = [t, p, v], r = ref4[0], g = ref4[1], b = ref4[2];\n break;\n case 5:\n ref5 = [v, p, q], r = ref5[0], g = ref5[1], b = ref5[2];\n }\n }\n return [r, g, b, args.length > 3 ? args[3] : 1];\n };\n\n rgb2hcg = function() {\n var _g, b, c, delta, g, h, min, r, ref;\n ref = unpack(arguments), r = ref[0], g = ref[1], b = ref[2];\n min = Math.min(r, g, b);\n max = Math.max(r, g, b);\n delta = max - min;\n c = delta * 100 / 255;\n _g = min / (255 - delta) * 100;\n if (delta === 0) {\n h = Number.NaN;\n } else {\n if (r === max) {\n h = (g - b) / delta;\n }\n if (g === max) {\n h = 2 + (b - r) / delta;\n }\n if (b === max) {\n h = 4 + (r - g) / delta;\n }\n h *= 60;\n if (h < 0) {\n h += 360;\n }\n }\n return [h, c, _g];\n };\n\n chroma.hcg = function() {\n return (function(func, args, ctor) {\n ctor.prototype = func.prototype;\n var child = new ctor, result = func.apply(child, args);\n return Object(result) === result ? result : child;\n })(Color, slice.call(arguments).concat(['hcg']), function(){});\n };\n\n _input.hcg = hcg2rgb;\n\n Color.prototype.hcg = function() {\n return rgb2hcg(this._rgb);\n };\n\n css2rgb = function(css) {\n var aa, ab, hsl, i, m, o, rgb, w;\n css = css.toLowerCase();\n if ((chroma.colors != null) && chroma.colors[css]) {\n return hex2rgb(chroma.colors[css]);\n }\n if (m = css.match(/rgb\\(\\s*(\\-?\\d+),\\s*(\\-?\\d+)\\s*,\\s*(\\-?\\d+)\\s*\\)/)) {\n rgb = m.slice(1, 4);\n for (i = o = 0; o <= 2; i = ++o) {\n rgb[i] = +rgb[i];\n }\n rgb[3] = 1;\n } else if (m = css.match(/rgba\\(\\s*(\\-?\\d+),\\s*(\\-?\\d+)\\s*,\\s*(\\-?\\d+)\\s*,\\s*([01]|[01]?\\.\\d+)\\)/)) {\n rgb = m.slice(1, 5);\n for (i = w = 0; w <= 3; i = ++w) {\n rgb[i] = +rgb[i];\n }\n } else if (m = css.match(/rgb\\(\\s*(\\-?\\d+(?:\\.\\d+)?)%,\\s*(\\-?\\d+(?:\\.\\d+)?)%\\s*,\\s*(\\-?\\d+(?:\\.\\d+)?)%\\s*\\)/)) {\n rgb = m.slice(1, 4);\n for (i = aa = 0; aa <= 2; i = ++aa) {\n rgb[i] = round(rgb[i] * 2.55);\n }\n rgb[3] = 1;\n } else if (m = css.match(/rgba\\(\\s*(\\-?\\d+(?:\\.\\d+)?)%,\\s*(\\-?\\d+(?:\\.\\d+)?)%\\s*,\\s*(\\-?\\d+(?:\\.\\d+)?)%\\s*,\\s*([01]|[01]?\\.\\d+)\\)/)) {\n rgb = m.slice(1, 5);\n for (i = ab = 0; ab <= 2; i = ++ab) {\n rgb[i] = round(rgb[i] * 2.55);\n }\n rgb[3] = +rgb[3];\n } else if (m = css.match(/hsl\\(\\s*(\\-?\\d+(?:\\.\\d+)?),\\s*(\\-?\\d+(?:\\.\\d+)?)%\\s*,\\s*(\\-?\\d+(?:\\.\\d+)?)%\\s*\\)/)) {\n hsl = m.slice(1, 4);\n hsl[1] *= 0.01;\n hsl[2] *= 0.01;\n rgb = hsl2rgb(hsl);\n rgb[3] = 1;\n } else if (m = css.match(/hsla\\(\\s*(\\-?\\d+(?:\\.\\d+)?),\\s*(\\-?\\d+(?:\\.\\d+)?)%\\s*,\\s*(\\-?\\d+(?:\\.\\d+)?)%\\s*,\\s*([01]|[01]?\\.\\d+)\\)/)) {\n hsl = m.slice(1, 4);\n hsl[1] *= 0.01;\n hsl[2] *= 0.01;\n rgb = hsl2rgb(hsl);\n rgb[3] = +m[4];\n }\n return rgb;\n };\n\n rgb2css = function(rgba) {\n var mode;\n mode = rgba[3] < 1 ? 'rgba' : 'rgb';\n if (mode === 'rgb') {\n return mode + '(' + rgba.slice(0, 3).map(round).join(',') + ')';\n } else if (mode === 'rgba') {\n return mode + '(' + rgba.slice(0, 3).map(round).join(',') + ',' + rgba[3] + ')';\n } else {\n\n }\n };\n\n rnd = function(a) {\n return round(a * 100) / 100;\n };\n\n hsl2css = function(hsl, alpha) {\n var mode;\n mode = alpha < 1 ? 'hsla' : 'hsl';\n hsl[0] = rnd(hsl[0] || 0);\n hsl[1] = rnd(hsl[1] * 100) + '%';\n hsl[2] = rnd(hsl[2] * 100) + '%';\n if (mode === 'hsla') {\n hsl[3] = alpha;\n }\n return mode + '(' + hsl.join(',') + ')';\n };\n\n _input.css = function(h) {\n return css2rgb(h);\n };\n\n chroma.css = function() {\n return (function(func, args, ctor) {\n ctor.prototype = func.prototype;\n var child = new ctor, result = func.apply(child, args);\n return Object(result) === result ? result : child;\n })(Color, slice.call(arguments).concat(['css']), function(){});\n };\n\n Color.prototype.css = function(mode) {\n if (mode == null) {\n mode = 'rgb';\n }\n if (mode.slice(0, 3) === 'rgb') {\n return rgb2css(this._rgb);\n } else if (mode.slice(0, 3) === 'hsl') {\n return hsl2css(this.hsl(), this.alpha());\n }\n };\n\n _input.named = function(name) {\n return hex2rgb(w3cx11[name]);\n };\n\n _guess_formats.push({\n p: 5,\n test: function(n) {\n if (arguments.length === 1 && (w3cx11[n] != null)) {\n return 'named';\n }\n }\n });\n\n Color.prototype.name = function(n) {\n var h, k;\n if (arguments.length) {\n if (w3cx11[n]) {\n this._rgb = hex2rgb(w3cx11[n]);\n }\n this._rgb[3] = 1;\n this;\n }\n h = this.hex('rgb');\n for (k in w3cx11) {\n if (h === w3cx11[k]) {\n return k;\n }\n }\n return h;\n };\n\n lch2lab = function() {\n\n /*\n Convert from a qualitative parameter h and a quantitative parameter l to a 24-bit pixel.\n These formulas were invented by David Dalrymple to obtain maximum contrast without going\n out of gamut if the parameters are in the range 0-1.\n \n A saturation multiplier was added by Gregor Aisch\n */\n var c, h, l, ref;\n ref = unpack(arguments), l = ref[0], c = ref[1], h = ref[2];\n h = h * DEG2RAD;\n return [l, cos(h) * c, sin(h) * c];\n };\n\n lch2rgb = function() {\n var L, a, args, b, c, g, h, l, r, ref, ref1;\n args = unpack(arguments);\n l = args[0], c = args[1], h = args[2];\n ref = lch2lab(l, c, h), L = ref[0], a = ref[1], b = ref[2];\n ref1 = lab2rgb(L, a, b), r = ref1[0], g = ref1[1], b = ref1[2];\n return [r, g, b, args.length > 3 ? args[3] : 1];\n };\n\n lab2lch = function() {\n var a, b, c, h, l, ref;\n ref = unpack(arguments), l = ref[0], a = ref[1], b = ref[2];\n c = sqrt(a * a + b * b);\n h = (atan2(b, a) * RAD2DEG + 360) % 360;\n if (round(c * 10000) === 0) {\n h = Number.NaN;\n }\n return [l, c, h];\n };\n\n rgb2lch = function() {\n var a, b, g, l, r, ref, ref1;\n ref = unpack(arguments), r = ref[0], g = ref[1], b = ref[2];\n ref1 = rgb2lab(r, g, b), l = ref1[0], a = ref1[1], b = ref1[2];\n return lab2lch(l, a, b);\n };\n\n chroma.lch = function() {\n var args;\n args = unpack(arguments);\n return new Color(args, 'lch');\n };\n\n chroma.hcl = function() {\n var args;\n args = unpack(arguments);\n return new Color(args, 'hcl');\n };\n\n _input.lch = lch2rgb;\n\n _input.hcl = function() {\n var c, h, l, ref;\n ref = unpack(arguments), h = ref[0], c = ref[1], l = ref[2];\n return lch2rgb([l, c, h]);\n };\n\n Color.prototype.lch = function() {\n return rgb2lch(this._rgb);\n };\n\n Color.prototype.hcl = function() {\n return rgb2lch(this._rgb).reverse();\n };\n\n rgb2cmyk = function(mode) {\n var b, c, f, g, k, m, r, ref, y;\n if (mode == null) {\n mode = 'rgb';\n }\n ref = unpack(arguments), r = ref[0], g = ref[1], b = ref[2];\n r = r / 255;\n g = g / 255;\n b = b / 255;\n k = 1 - Math.max(r, Math.max(g, b));\n f = k < 1 ? 1 / (1 - k) : 0;\n c = (1 - r - k) * f;\n m = (1 - g - k) * f;\n y = (1 - b - k) * f;\n return [c, m, y, k];\n };\n\n cmyk2rgb = function() {\n var alpha, args, b, c, g, k, m, r, y;\n args = unpack(arguments);\n c = args[0], m = args[1], y = args[2], k = args[3];\n alpha = args.length > 4 ? args[4] : 1;\n if (k === 1) {\n return [0, 0, 0, alpha];\n }\n r = c >= 1 ? 0 : 255 * (1 - c) * (1 - k);\n g = m >= 1 ? 0 : 255 * (1 - m) * (1 - k);\n b = y >= 1 ? 0 : 255 * (1 - y) * (1 - k);\n return [r, g, b, alpha];\n };\n\n _input.cmyk = function() {\n return cmyk2rgb(unpack(arguments));\n };\n\n chroma.cmyk = function() {\n return (function(func, args, ctor) {\n ctor.prototype = func.prototype;\n var child = new ctor, result = func.apply(child, args);\n return Object(result) === result ? result : child;\n })(Color, slice.call(arguments).concat(['cmyk']), function(){});\n };\n\n Color.prototype.cmyk = function() {\n return rgb2cmyk(this._rgb);\n };\n\n _input.gl = function() {\n var i, k, o, rgb, v;\n rgb = (function() {\n var ref, results;\n ref = unpack(arguments);\n results = [];\n for (k in ref) {\n v = ref[k];\n results.push(v);\n }\n return results;\n }).apply(this, arguments);\n for (i = o = 0; o <= 2; i = ++o) {\n rgb[i] *= 255;\n }\n return rgb;\n };\n\n chroma.gl = function() {\n return (function(func, args, ctor) {\n ctor.prototype = func.prototype;\n var child = new ctor, result = func.apply(child, args);\n return Object(result) === result ? result : child;\n })(Color, slice.call(arguments).concat(['gl']), function(){});\n };\n\n Color.prototype.gl = function() {\n var rgb;\n rgb = this._rgb;\n return [rgb[0] / 255, rgb[1] / 255, rgb[2] / 255, rgb[3]];\n };\n\n rgb2luminance = function(r, g, b) {\n var ref;\n ref = unpack(arguments), r = ref[0], g = ref[1], b = ref[2];\n r = luminance_x(r);\n g = luminance_x(g);\n b = luminance_x(b);\n return 0.2126 * r + 0.7152 * g + 0.0722 * b;\n };\n\n luminance_x = function(x) {\n x /= 255;\n if (x <= 0.03928) {\n return x / 12.92;\n } else {\n return pow((x + 0.055) / 1.055, 2.4);\n }\n };\n\n interpolate_rgb = function(col1, col2, f, m) {\n var xyz0, xyz1;\n xyz0 = col1._rgb;\n xyz1 = col2._rgb;\n return new Color(xyz0[0] + f * (xyz1[0] - xyz0[0]), xyz0[1] + f * (xyz1[1] - xyz0[1]), xyz0[2] + f * (xyz1[2] - xyz0[2]), m);\n };\n\n _interpolators.push(['rgb', interpolate_rgb]);\n\n Color.prototype.luminance = function(lum, mode) {\n var cur_lum, eps, max_iter, rgba, test;\n if (mode == null) {\n mode = 'rgb';\n }\n if (!arguments.length) {\n return rgb2luminance(this._rgb);\n }\n rgba = this._rgb;\n if (lum === 0) {\n rgba = [0, 0, 0, this._rgb[3]];\n } else if (lum === 1) {\n rgba = [255, 255, 255, this[3]];\n } else {\n cur_lum = rgb2luminance(this._rgb);\n eps = 1e-7;\n max_iter = 20;\n test = function(l, h) {\n var lm, m;\n m = l.interpolate(h, 0.5, mode);\n lm = m.luminance();\n if (Math.abs(lum - lm) < eps || !max_iter--) {\n return m;\n }\n if (lm > lum) {\n return test(l, m);\n }\n return test(m, h);\n };\n if (cur_lum > lum) {\n rgba = test(chroma('black'), this).rgba();\n } else {\n rgba = test(this, chroma('white')).rgba();\n }\n }\n return chroma(rgba).alpha(this.alpha());\n };\n\n temperature2rgb = function(kelvin) {\n var b, g, r, temp;\n temp = kelvin / 100;\n if (temp < 66) {\n r = 255;\n g = -155.25485562709179 - 0.44596950469579133 * (g = temp - 2) + 104.49216199393888 * log(g);\n b = temp < 20 ? 0 : -254.76935184120902 + 0.8274096064007395 * (b = temp - 10) + 115.67994401066147 * log(b);\n } else {\n r = 351.97690566805693 + 0.114206453784165 * (r = temp - 55) - 40.25366309332127 * log(r);\n g = 325.4494125711974 + 0.07943456536662342 * (g = temp - 50) - 28.0852963507957 * log(g);\n b = 255;\n }\n return [r, g, b];\n };\n\n rgb2temperature = function() {\n var b, eps, g, maxTemp, minTemp, r, ref, rgb, temp;\n ref = unpack(arguments), r = ref[0], g = ref[1], b = ref[2];\n minTemp = 1000;\n maxTemp = 40000;\n eps = 0.4;\n while (maxTemp - minTemp > eps) {\n temp = (maxTemp + minTemp) * 0.5;\n rgb = temperature2rgb(temp);\n if ((rgb[2] / rgb[0]) >= (b / r)) {\n maxTemp = temp;\n } else {\n minTemp = temp;\n }\n }\n return round(temp);\n };\n\n chroma.temperature = chroma.kelvin = function() {\n return (function(func, args, ctor) {\n ctor.prototype = func.prototype;\n var child = new ctor, result = func.apply(child, args);\n return Object(result) === result ? result : child;\n })(Color, slice.call(arguments).concat(['temperature']), function(){});\n };\n\n _input.temperature = _input.kelvin = _input.K = temperature2rgb;\n\n Color.prototype.temperature = function() {\n return rgb2temperature(this._rgb);\n };\n\n Color.prototype.kelvin = Color.prototype.temperature;\n\n chroma.contrast = function(a, b) {\n var l1, l2, ref, ref1;\n if ((ref = type(a)) === 'string' || ref === 'number') {\n a = new Color(a);\n }\n if ((ref1 = type(b)) === 'string' || ref1 === 'number') {\n b = new Color(b);\n }\n l1 = a.luminance();\n l2 = b.luminance();\n if (l1 > l2) {\n return (l1 + 0.05) / (l2 + 0.05);\n } else {\n return (l2 + 0.05) / (l1 + 0.05);\n }\n };\n\n chroma.distance = function(a, b, mode) {\n var d, i, l1, l2, ref, ref1, sum_sq;\n if (mode == null) {\n mode = 'lab';\n }\n if ((ref = type(a)) === 'string' || ref === 'number') {\n a = new Color(a);\n }\n if ((ref1 = type(b)) === 'string' || ref1 === 'number') {\n b = new Color(b);\n }\n l1 = a.get(mode);\n l2 = b.get(mode);\n sum_sq = 0;\n for (i in l1) {\n d = (l1[i] || 0) - (l2[i] || 0);\n sum_sq += d * d;\n }\n return Math.sqrt(sum_sq);\n };\n\n chroma.deltaE = function(a, b, L, C) {\n var L1, L2, a1, a2, b1, b2, c1, c2, c4, dH2, delA, delB, delC, delL, f, h1, ref, ref1, ref2, ref3, sc, sh, sl, t, v1, v2, v3;\n if (L == null) {\n L = 1;\n }\n if (C == null) {\n C = 1;\n }\n if ((ref = type(a)) === 'string' || ref === 'number') {\n a = new Color(a);\n }\n if ((ref1 = type(b)) === 'string' || ref1 === 'number') {\n b = new Color(b);\n }\n ref2 = a.lab(), L1 = ref2[0], a1 = ref2[1], b1 = ref2[2];\n ref3 = b.lab(), L2 = ref3[0], a2 = ref3[1], b2 = ref3[2];\n c1 = sqrt(a1 * a1 + b1 * b1);\n c2 = sqrt(a2 * a2 + b2 * b2);\n sl = L1 < 16.0 ? 0.511 : (0.040975 * L1) / (1.0 + 0.01765 * L1);\n sc = (0.0638 * c1) / (1.0 + 0.0131 * c1) + 0.638;\n h1 = c1 < 0.000001 ? 0.0 : (atan2(b1, a1) * 180.0) / PI;\n while (h1 < 0) {\n h1 += 360;\n }\n while (h1 >= 360) {\n h1 -= 360;\n }\n t = (h1 >= 164.0) && (h1 <= 345.0) ? 0.56 + abs(0.2 * cos((PI * (h1 + 168.0)) / 180.0)) : 0.36 + abs(0.4 * cos((PI * (h1 + 35.0)) / 180.0));\n c4 = c1 * c1 * c1 * c1;\n f = sqrt(c4 / (c4 + 1900.0));\n sh = sc * (f * t + 1.0 - f);\n delL = L1 - L2;\n delC = c1 - c2;\n delA = a1 - a2;\n delB = b1 - b2;\n dH2 = delA * delA + delB * delB - delC * delC;\n v1 = delL / (L * sl);\n v2 = delC / (C * sc);\n v3 = sh;\n return sqrt(v1 * v1 + v2 * v2 + (dH2 / (v3 * v3)));\n };\n\n Color.prototype.get = function(modechan) {\n var channel, i, me, mode, ref, src;\n me = this;\n ref = modechan.split('.'), mode = ref[0], channel = ref[1];\n src = me[mode]();\n if (channel) {\n i = mode.indexOf(channel);\n if (i > -1) {\n return src[i];\n } else {\n return console.warn('unknown channel ' + channel + ' in mode ' + mode);\n }\n } else {\n return src;\n }\n };\n\n Color.prototype.set = function(modechan, value) {\n var channel, i, me, mode, ref, src;\n me = this;\n ref = modechan.split('.'), mode = ref[0], channel = ref[1];\n if (channel) {\n src = me[mode]();\n i = mode.indexOf(channel);\n if (i > -1) {\n if (type(value) === 'string') {\n switch (value.charAt(0)) {\n case '+':\n src[i] += +value;\n break;\n case '-':\n src[i] += +value;\n break;\n case '*':\n src[i] *= +(value.substr(1));\n break;\n case '/':\n src[i] /= +(value.substr(1));\n break;\n default:\n src[i] = +value;\n }\n } else {\n src[i] = value;\n }\n } else {\n console.warn('unknown channel ' + channel + ' in mode ' + mode);\n }\n } else {\n src = value;\n }\n return chroma(src, mode).alpha(me.alpha());\n };\n\n Color.prototype.clipped = function() {\n return this._rgb._clipped || false;\n };\n\n Color.prototype.alpha = function(a) {\n if (arguments.length) {\n return chroma.rgb([this._rgb[0], this._rgb[1], this._rgb[2], a]);\n }\n return this._rgb[3];\n };\n\n Color.prototype.darken = function(amount) {\n var lab, me;\n if (amount == null) {\n amount = 1;\n }\n me = this;\n lab = me.lab();\n lab[0] -= LAB_CONSTANTS.Kn * amount;\n return chroma.lab(lab).alpha(me.alpha());\n };\n\n Color.prototype.brighten = function(amount) {\n if (amount == null) {\n amount = 1;\n }\n return this.darken(-amount);\n };\n\n Color.prototype.darker = Color.prototype.darken;\n\n Color.prototype.brighter = Color.prototype.brighten;\n\n Color.prototype.saturate = function(amount) {\n var lch, me;\n if (amount == null) {\n amount = 1;\n }\n me = this;\n lch = me.lch();\n lch[1] += amount * LAB_CONSTANTS.Kn;\n if (lch[1] < 0) {\n lch[1] = 0;\n }\n return chroma.lch(lch).alpha(me.alpha());\n };\n\n Color.prototype.desaturate = function(amount) {\n if (amount == null) {\n amount = 1;\n }\n return this.saturate(-amount);\n };\n\n Color.prototype.premultiply = function() {\n var a, rgb;\n rgb = this.rgb();\n a = this.alpha();\n return chroma(rgb[0] * a, rgb[1] * a, rgb[2] * a, a);\n };\n\n blend = function(bottom, top, mode) {\n if (!blend[mode]) {\n throw 'unknown blend mode ' + mode;\n }\n return blend[mode](bottom, top);\n };\n\n blend_f = function(f) {\n return function(bottom, top) {\n var c0, c1;\n c0 = chroma(top).rgb();\n c1 = chroma(bottom).rgb();\n return chroma(f(c0, c1), 'rgb');\n };\n };\n\n each = function(f) {\n return function(c0, c1) {\n var i, o, out;\n out = [];\n for (i = o = 0; o <= 3; i = ++o) {\n out[i] = f(c0[i], c1[i]);\n }\n return out;\n };\n };\n\n normal = function(a, b) {\n return a;\n };\n\n multiply = function(a, b) {\n return a * b / 255;\n };\n\n darken = function(a, b) {\n if (a > b) {\n return b;\n } else {\n return a;\n }\n };\n\n lighten = function(a, b) {\n if (a > b) {\n return a;\n } else {\n return b;\n }\n };\n\n screen = function(a, b) {\n return 255 * (1 - (1 - a / 255) * (1 - b / 255));\n };\n\n overlay = function(a, b) {\n if (b < 128) {\n return 2 * a * b / 255;\n } else {\n return 255 * (1 - 2 * (1 - a / 255) * (1 - b / 255));\n }\n };\n\n burn = function(a, b) {\n return 255 * (1 - (1 - b / 255) / (a / 255));\n };\n\n dodge = function(a, b) {\n if (a === 255) {\n return 255;\n }\n a = 255 * (b / 255) / (1 - a / 255);\n if (a > 255) {\n return 255;\n } else {\n return a;\n }\n };\n\n blend.normal = blend_f(each(normal));\n\n blend.multiply = blend_f(each(multiply));\n\n blend.screen = blend_f(each(screen));\n\n blend.overlay = blend_f(each(overlay));\n\n blend.darken = blend_f(each(darken));\n\n blend.lighten = blend_f(each(lighten));\n\n blend.dodge = blend_f(each(dodge));\n\n blend.burn = blend_f(each(burn));\n\n chroma.blend = blend;\n\n chroma.analyze = function(data) {\n var len, o, r, val;\n r = {\n min: Number.MAX_VALUE,\n max: Number.MAX_VALUE * -1,\n sum: 0,\n values: [],\n count: 0\n };\n for (o = 0, len = data.length; o < len; o++) {\n val = data[o];\n if ((val != null) && !isNaN(val)) {\n r.values.push(val);\n r.sum += val;\n if (val < r.min) {\n r.min = val;\n }\n if (val > r.max) {\n r.max = val;\n }\n r.count += 1;\n }\n }\n r.domain = [r.min, r.max];\n r.limits = function(mode, num) {\n return chroma.limits(r, mode, num);\n };\n return r;\n };\n\n chroma.scale = function(colors, positions) {\n var _classes, _colorCache, _colors, _correctLightness, _domain, _fixed, _gamma, _max, _min, _mode, _nacol, _out, _padding, _pos, _spread, _useCache, classifyValue, f, getClass, getColor, resetCache, setColors, tmap;\n _mode = 'rgb';\n _nacol = chroma('#ccc');\n _spread = 0;\n _fixed = false;\n _domain = [0, 1];\n _pos = [];\n _padding = [0, 0];\n _classes = false;\n _colors = [];\n _out = false;\n _min = 0;\n _max = 1;\n _correctLightness = false;\n _colorCache = {};\n _useCache = true;\n _gamma = 1;\n setColors = function(colors) {\n var c, col, o, ref, ref1, w;\n if (colors == null) {\n colors = ['#fff', '#000'];\n }\n if ((colors != null) && type(colors) === 'string' && (chroma.brewer != null)) {\n colors = chroma.brewer[colors] || chroma.brewer[colors.toLowerCase()] || colors;\n }\n if (type(colors) === 'array') {\n if (colors.length === 1) {\n colors = [colors[0], colors[0]];\n }\n colors = colors.slice(0);\n for (c = o = 0, ref = colors.length - 1; 0 <= ref ? o <= ref : o >= ref; c = 0 <= ref ? ++o : --o) {\n col = colors[c];\n if (type(col) === \"string\") {\n colors[c] = chroma(col);\n }\n }\n _pos.length = 0;\n for (c = w = 0, ref1 = colors.length - 1; 0 <= ref1 ? w <= ref1 : w >= ref1; c = 0 <= ref1 ? ++w : --w) {\n _pos.push(c / (colors.length - 1));\n }\n }\n resetCache();\n return _colors = colors;\n };\n getClass = function(value) {\n var i, n;\n if (_classes != null) {\n n = _classes.length - 1;\n i = 0;\n while (i < n && value >= _classes[i]) {\n i++;\n }\n return i - 1;\n }\n return 0;\n };\n tmap = function(t) {\n return t;\n };\n classifyValue = function(value) {\n var i, maxc, minc, n, val;\n val = value;\n if (_classes.length > 2) {\n n = _classes.length - 1;\n i = getClass(value);\n minc = _classes[0] + (_classes[1] - _classes[0]) * (0 + _spread * 0.5);\n maxc = _classes[n - 1] + (_classes[n] - _classes[n - 1]) * (1 - _spread * 0.5);\n val = _min + ((_classes[i] + (_classes[i + 1] - _classes[i]) * 0.5 - minc) / (maxc - minc)) * (_max - _min);\n }\n return val;\n };\n getColor = function(val, bypassMap) {\n var c, col, i, k, o, p, ref, t;\n if (bypassMap == null) {\n bypassMap = false;\n }\n if (isNaN(val) || val === null) {\n return _nacol;\n }\n if (!bypassMap) {\n if (_classes && _classes.length > 2) {\n c = getClass(val);\n t = c / (_classes.length - 2);\n } else if (_max !== _min) {\n t = (val - _min) / (_max - _min);\n } else {\n t = 1;\n }\n } else {\n t = val;\n }\n if (!bypassMap) {\n t = tmap(t);\n }\n if (_gamma !== 1) {\n t = pow(t, _gamma);\n }\n t = _padding[0] + (t * (1 - _padding[0] - _padding[1]));\n t = Math.min(1, Math.max(0, t));\n k = Math.floor(t * 10000);\n if (_useCache && _colorCache[k]) {\n col = _colorCache[k];\n } else {\n if (type(_colors) === 'array') {\n for (i = o = 0, ref = _pos.length - 1; 0 <= ref ? o <= ref : o >= ref; i = 0 <= ref ? ++o : --o) {\n p = _pos[i];\n if (t <= p) {\n col = _colors[i];\n break;\n }\n if (t >= p && i === _pos.length - 1) {\n col = _colors[i];\n break;\n }\n if (t > p && t < _pos[i + 1]) {\n t = (t - p) / (_pos[i + 1] - p);\n col = chroma.interpolate(_colors[i], _colors[i + 1], t, _mode);\n break;\n }\n }\n } else if (type(_colors) === 'function') {\n col = _colors(t);\n }\n if (_useCache) {\n _colorCache[k] = col;\n }\n }\n return col;\n };\n resetCache = function() {\n return _colorCache = {};\n };\n setColors(colors);\n f = function(v) {\n var c;\n c = chroma(getColor(v));\n if (_out && c[_out]) {\n return c[_out]();\n } else {\n return c;\n }\n };\n f.classes = function(classes) {\n var d;\n if (classes != null) {\n if (type(classes) === 'array') {\n _classes = classes;\n _domain = [classes[0], classes[classes.length - 1]];\n } else {\n d = chroma.analyze(_domain);\n if (classes === 0) {\n _classes = [d.min, d.max];\n } else {\n _classes = chroma.limits(d, 'e', classes);\n }\n }\n return f;\n }\n return _classes;\n };\n f.domain = function(domain) {\n var c, d, k, len, o, ref, w;\n if (!arguments.length) {\n return _domain;\n }\n _min = domain[0];\n _max = domain[domain.length - 1];\n _pos = [];\n k = _colors.length;\n if (domain.length === k && _min !== _max) {\n for (o = 0, len = domain.length; o < len; o++) {\n d = domain[o];\n _pos.push((d - _min) / (_max - _min));\n }\n } else {\n for (c = w = 0, ref = k - 1; 0 <= ref ? w <= ref : w >= ref; c = 0 <= ref ? ++w : --w) {\n _pos.push(c / (k - 1));\n }\n }\n _domain = [_min, _max];\n return f;\n };\n f.mode = function(_m) {\n if (!arguments.length) {\n return _mode;\n }\n _mode = _m;\n resetCache();\n return f;\n };\n f.range = function(colors, _pos) {\n setColors(colors, _pos);\n return f;\n };\n f.out = function(_o) {\n _out = _o;\n return f;\n };\n f.spread = function(val) {\n if (!arguments.length) {\n return _spread;\n }\n _spread = val;\n return f;\n };\n f.correctLightness = function(v) {\n if (v == null) {\n v = true;\n }\n _correctLightness = v;\n resetCache();\n if (_correctLightness) {\n tmap = function(t) {\n var L0, L1, L_actual, L_diff, L_ideal, max_iter, pol, t0, t1;\n L0 = getColor(0, true).lab()[0];\n L1 = getColor(1, true).lab()[0];\n pol = L0 > L1;\n L_actual = getColor(t, true).lab()[0];\n L_ideal = L0 + (L1 - L0) * t;\n L_diff = L_actual - L_ideal;\n t0 = 0;\n t1 = 1;\n max_iter = 20;\n while (Math.abs(L_diff) > 1e-2 && max_iter-- > 0) {\n (function() {\n if (pol) {\n L_diff *= -1;\n }\n if (L_diff < 0) {\n t0 = t;\n t += (t1 - t) * 0.5;\n } else {\n t1 = t;\n t += (t0 - t) * 0.5;\n }\n L_actual = getColor(t, true).lab()[0];\n return L_diff = L_actual - L_ideal;\n })();\n }\n return t;\n };\n } else {\n tmap = function(t) {\n return t;\n };\n }\n return f;\n };\n f.padding = function(p) {\n if (p != null) {\n if (type(p) === 'number') {\n p = [p, p];\n }\n _padding = p;\n return f;\n } else {\n return _padding;\n }\n };\n f.colors = function(numColors, out) {\n var dd, dm, i, o, ref, result, results, samples, w;\n if (arguments.length < 2) {\n out = 'hex';\n }\n result = [];\n if (arguments.length === 0) {\n result = _colors.slice(0);\n } else if (numColors === 1) {\n result = [f(0.5)];\n } else if (numColors > 1) {\n dm = _domain[0];\n dd = _domain[1] - dm;\n result = (function() {\n results = [];\n for (var o = 0; 0 <= numColors ? o < numColors : o > numColors; 0 <= numColors ? o++ : o--){ results.push(o); }\n return results;\n }).apply(this).map(function(i) {\n return f(dm + i / (numColors - 1) * dd);\n });\n } else {\n colors = [];\n samples = [];\n if (_classes && _classes.length > 2) {\n for (i = w = 1, ref = _classes.length; 1 <= ref ? w < ref : w > ref; i = 1 <= ref ? ++w : --w) {\n samples.push((_classes[i - 1] + _classes[i]) * 0.5);\n }\n } else {\n samples = _domain;\n }\n result = samples.map(function(v) {\n return f(v);\n });\n }\n if (chroma[out]) {\n result = result.map(function(c) {\n return c[out]();\n });\n }\n return result;\n };\n f.cache = function(c) {\n if (c != null) {\n _useCache = c;\n return f;\n } else {\n return _useCache;\n }\n };\n f.gamma = function(g) {\n if (g != null) {\n _gamma = g;\n return f;\n } else {\n return _gamma;\n }\n };\n f.nodata = function(d) {\n if (d != null) {\n _nacol = chroma(d);\n return f;\n } else {\n return _nacol;\n }\n };\n return f;\n };\n\n if (chroma.scales == null) {\n chroma.scales = {};\n }\n\n chroma.scales.cool = function() {\n return chroma.scale([chroma.hsl(180, 1, .9), chroma.hsl(250, .7, .4)]);\n };\n\n chroma.scales.hot = function() {\n return chroma.scale(['#000', '#f00', '#ff0', '#fff'], [0, .25, .75, 1]).mode('rgb');\n };\n\n chroma.analyze = function(data, key, filter) {\n var add, k, len, o, r, val, visit;\n r = {\n min: Number.MAX_VALUE,\n max: Number.MAX_VALUE * -1,\n sum: 0,\n values: [],\n count: 0\n };\n if (filter == null) {\n filter = function() {\n return true;\n };\n }\n add = function(val) {\n if ((val != null) && !isNaN(val)) {\n r.values.push(val);\n r.sum += val;\n if (val < r.min) {\n r.min = val;\n }\n if (val > r.max) {\n r.max = val;\n }\n r.count += 1;\n }\n };\n visit = function(val, k) {\n if (filter(val, k)) {\n if ((key != null) && type(key) === 'function') {\n return add(key(val));\n } else if ((key != null) && type(key) === 'string' || type(key) === 'number') {\n return add(val[key]);\n } else {\n return add(val);\n }\n }\n };\n if (type(data) === 'array') {\n for (o = 0, len = data.length; o < len; o++) {\n val = data[o];\n visit(val);\n }\n } else {\n for (k in data) {\n val = data[k];\n visit(val, k);\n }\n }\n r.domain = [r.min, r.max];\n r.limits = function(mode, num) {\n return chroma.limits(r, mode, num);\n };\n return r;\n };\n\n chroma.limits = function(data, mode, num) {\n var aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, assignments, best, centroids, cluster, clusterSizes, dist, i, j, kClusters, limits, max_log, min, min_log, mindist, n, nb_iters, newCentroids, o, p, pb, pr, ref, ref1, ref10, ref11, ref12, ref13, ref14, ref2, ref3, ref4, ref5, ref6, ref7, ref8, ref9, repeat, sum, tmpKMeansBreaks, v, value, values, w;\n if (mode == null) {\n mode = 'equal';\n }\n if (num == null) {\n num = 7;\n }\n if (type(data) === 'array') {\n data = chroma.analyze(data);\n }\n min = data.min;\n max = data.max;\n sum = data.sum;\n values = data.values.sort(function(a, b) {\n return a - b;\n });\n if (num === 1) {\n return [min, max];\n }\n limits = [];\n if (mode.substr(0, 1) === 'c') {\n limits.push(min);\n limits.push(max);\n }\n if (mode.substr(0, 1) === 'e') {\n limits.push(min);\n for (i = o = 1, ref = num - 1; 1 <= ref ? o <= ref : o >= ref; i = 1 <= ref ? ++o : --o) {\n limits.push(min + (i / num) * (max - min));\n }\n limits.push(max);\n } else if (mode.substr(0, 1) === 'l') {\n if (min <= 0) {\n throw 'Logarithmic scales are only possible for values > 0';\n }\n min_log = Math.LOG10E * log(min);\n max_log = Math.LOG10E * log(max);\n limits.push(min);\n for (i = w = 1, ref1 = num - 1; 1 <= ref1 ? w <= ref1 : w >= ref1; i = 1 <= ref1 ? ++w : --w) {\n limits.push(pow(10, min_log + (i / num) * (max_log - min_log)));\n }\n limits.push(max);\n } else if (mode.substr(0, 1) === 'q') {\n limits.push(min);\n for (i = aa = 1, ref2 = num - 1; 1 <= ref2 ? aa <= ref2 : aa >= ref2; i = 1 <= ref2 ? ++aa : --aa) {\n p = (values.length - 1) * i / num;\n pb = floor(p);\n if (pb === p) {\n limits.push(values[pb]);\n } else {\n pr = p - pb;\n limits.push(values[pb] * (1 - pr) + values[pb + 1] * pr);\n }\n }\n limits.push(max);\n } else if (mode.substr(0, 1) === 'k') {\n\n /*\n implementation based on\n http://code.google.com/p/figue/source/browse/trunk/figue.js#336\n simplified for 1-d input values\n */\n n = values.length;\n assignments = new Array(n);\n clusterSizes = new Array(num);\n repeat = true;\n nb_iters = 0;\n centroids = null;\n centroids = [];\n centroids.push(min);\n for (i = ab = 1, ref3 = num - 1; 1 <= ref3 ? ab <= ref3 : ab >= ref3; i = 1 <= ref3 ? ++ab : --ab) {\n centroids.push(min + (i / num) * (max - min));\n }\n centroids.push(max);\n while (repeat) {\n for (j = ac = 0, ref4 = num - 1; 0 <= ref4 ? ac <= ref4 : ac >= ref4; j = 0 <= ref4 ? ++ac : --ac) {\n clusterSizes[j] = 0;\n }\n for (i = ad = 0, ref5 = n - 1; 0 <= ref5 ? ad <= ref5 : ad >= ref5; i = 0 <= ref5 ? ++ad : --ad) {\n value = values[i];\n mindist = Number.MAX_VALUE;\n for (j = ae = 0, ref6 = num - 1; 0 <= ref6 ? ae <= ref6 : ae >= ref6; j = 0 <= ref6 ? ++ae : --ae) {\n dist = abs(centroids[j] - value);\n if (dist < mindist) {\n mindist = dist;\n best = j;\n }\n }\n clusterSizes[best]++;\n assignments[i] = best;\n }\n newCentroids = new Array(num);\n for (j = af = 0, ref7 = num - 1; 0 <= ref7 ? af <= ref7 : af >= ref7; j = 0 <= ref7 ? ++af : --af) {\n newCentroids[j] = null;\n }\n for (i = ag = 0, ref8 = n - 1; 0 <= ref8 ? ag <= ref8 : ag >= ref8; i = 0 <= ref8 ? ++ag : --ag) {\n cluster = assignments[i];\n if (newCentroids[cluster] === null) {\n newCentroids[cluster] = values[i];\n } else {\n newCentroids[cluster] += values[i];\n }\n }\n for (j = ah = 0, ref9 = num - 1; 0 <= ref9 ? ah <= ref9 : ah >= ref9; j = 0 <= ref9 ? ++ah : --ah) {\n newCentroids[j] *= 1 / clusterSizes[j];\n }\n repeat = false;\n for (j = ai = 0, ref10 = num - 1; 0 <= ref10 ? ai <= ref10 : ai >= ref10; j = 0 <= ref10 ? ++ai : --ai) {\n if (newCentroids[j] !== centroids[i]) {\n repeat = true;\n break;\n }\n }\n centroids = newCentroids;\n nb_iters++;\n if (nb_iters > 200) {\n repeat = false;\n }\n }\n kClusters = {};\n for (j = aj = 0, ref11 = num - 1; 0 <= ref11 ? aj <= ref11 : aj >= ref11; j = 0 <= ref11 ? ++aj : --aj) {\n kClusters[j] = [];\n }\n for (i = ak = 0, ref12 = n - 1; 0 <= ref12 ? ak <= ref12 : ak >= ref12; i = 0 <= ref12 ? ++ak : --ak) {\n cluster = assignments[i];\n kClusters[cluster].push(values[i]);\n }\n tmpKMeansBreaks = [];\n for (j = al = 0, ref13 = num - 1; 0 <= ref13 ? al <= ref13 : al >= ref13; j = 0 <= ref13 ? ++al : --al) {\n tmpKMeansBreaks.push(kClusters[j][0]);\n tmpKMeansBreaks.push(kClusters[j][kClusters[j].length - 1]);\n }\n tmpKMeansBreaks = tmpKMeansBreaks.sort(function(a, b) {\n return a - b;\n });\n limits.push(tmpKMeansBreaks[0]);\n for (i = am = 1, ref14 = tmpKMeansBreaks.length - 1; am <= ref14; i = am += 2) {\n v = tmpKMeansBreaks[i];\n if (!isNaN(v) && limits.indexOf(v) === -1) {\n limits.push(v);\n }\n }\n }\n return limits;\n };\n\n hsi2rgb = function(h, s, i) {\n\n /*\n borrowed from here:\n http://hummer.stanford.edu/museinfo/doc/examples/humdrum/keyscape2/hsi2rgb.cpp\n */\n var args, b, g, r;\n args = unpack(arguments);\n h = args[0], s = args[1], i = args[2];\n if (isNaN(h)) {\n h = 0;\n }\n h /= 360;\n if (h < 1 / 3) {\n b = (1 - s) / 3;\n r = (1 + s * cos(TWOPI * h) / cos(PITHIRD - TWOPI * h)) / 3;\n g = 1 - (b + r);\n } else if (h < 2 / 3) {\n h -= 1 / 3;\n r = (1 - s) / 3;\n g = (1 + s * cos(TWOPI * h) / cos(PITHIRD - TWOPI * h)) / 3;\n b = 1 - (r + g);\n } else {\n h -= 2 / 3;\n g = (1 - s) / 3;\n b = (1 + s * cos(TWOPI * h) / cos(PITHIRD - TWOPI * h)) / 3;\n r = 1 - (g + b);\n }\n r = limit(i * r * 3);\n g = limit(i * g * 3);\n b = limit(i * b * 3);\n return [r * 255, g * 255, b * 255, args.length > 3 ? args[3] : 1];\n };\n\n rgb2hsi = function() {\n\n /*\n borrowed from here:\n http://hummer.stanford.edu/museinfo/doc/examples/humdrum/keyscape2/rgb2hsi.cpp\n */\n var b, g, h, i, min, r, ref, s;\n ref = unpack(arguments), r = ref[0], g = ref[1], b = ref[2];\n TWOPI = Math.PI * 2;\n r /= 255;\n g /= 255;\n b /= 255;\n min = Math.min(r, g, b);\n i = (r + g + b) / 3;\n s = 1 - min / i;\n if (s === 0) {\n h = 0;\n } else {\n h = ((r - g) + (r - b)) / 2;\n h /= Math.sqrt((r - g) * (r - g) + (r - b) * (g - b));\n h = Math.acos(h);\n if (b > g) {\n h = TWOPI - h;\n }\n h /= TWOPI;\n }\n return [h * 360, s, i];\n };\n\n chroma.hsi = function() {\n return (function(func, args, ctor) {\n ctor.prototype = func.prototype;\n var child = new ctor, result = func.apply(child, args);\n return Object(result) === result ? result : child;\n })(Color, slice.call(arguments).concat(['hsi']), function(){});\n };\n\n _input.hsi = hsi2rgb;\n\n Color.prototype.hsi = function() {\n return rgb2hsi(this._rgb);\n };\n\n interpolate_hsx = function(col1, col2, f, m) {\n var dh, hue, hue0, hue1, lbv, lbv0, lbv1, res, sat, sat0, sat1, xyz0, xyz1;\n if (m === 'hsl') {\n xyz0 = col1.hsl();\n xyz1 = col2.hsl();\n } else if (m === 'hsv') {\n xyz0 = col1.hsv();\n xyz1 = col2.hsv();\n } else if (m === 'hcg') {\n xyz0 = col1.hcg();\n xyz1 = col2.hcg();\n } else if (m === 'hsi') {\n xyz0 = col1.hsi();\n xyz1 = col2.hsi();\n } else if (m === 'lch' || m === 'hcl') {\n m = 'hcl';\n xyz0 = col1.hcl();\n xyz1 = col2.hcl();\n }\n if (m.substr(0, 1) === 'h') {\n hue0 = xyz0[0], sat0 = xyz0[1], lbv0 = xyz0[2];\n hue1 = xyz1[0], sat1 = xyz1[1], lbv1 = xyz1[2];\n }\n if (!isNaN(hue0) && !isNaN(hue1)) {\n if (hue1 > hue0 && hue1 - hue0 > 180) {\n dh = hue1 - (hue0 + 360);\n } else if (hue1 < hue0 && hue0 - hue1 > 180) {\n dh = hue1 + 360 - hue0;\n } else {\n dh = hue1 - hue0;\n }\n hue = hue0 + f * dh;\n } else if (!isNaN(hue0)) {\n hue = hue0;\n if ((lbv1 === 1 || lbv1 === 0) && m !== 'hsv') {\n sat = sat0;\n }\n } else if (!isNaN(hue1)) {\n hue = hue1;\n if ((lbv0 === 1 || lbv0 === 0) && m !== 'hsv') {\n sat = sat1;\n }\n } else {\n hue = Number.NaN;\n }\n if (sat == null) {\n sat = sat0 + f * (sat1 - sat0);\n }\n lbv = lbv0 + f * (lbv1 - lbv0);\n return res = chroma[m](hue, sat, lbv);\n };\n\n _interpolators = _interpolators.concat((function() {\n var len, o, ref, results;\n ref = ['hsv', 'hsl', 'hsi', 'hcl', 'lch', 'hcg'];\n results = [];\n for (o = 0, len = ref.length; o < len; o++) {\n m = ref[o];\n results.push([m, interpolate_hsx]);\n }\n return results;\n })());\n\n interpolate_num = function(col1, col2, f, m) {\n var n1, n2;\n n1 = col1.num();\n n2 = col2.num();\n return chroma.num(n1 + (n2 - n1) * f, 'num');\n };\n\n _interpolators.push(['num', interpolate_num]);\n\n interpolate_lab = function(col1, col2, f, m) {\n var res, xyz0, xyz1;\n xyz0 = col1.lab();\n xyz1 = col2.lab();\n return res = new Color(xyz0[0] + f * (xyz1[0] - xyz0[0]), xyz0[1] + f * (xyz1[1] - xyz0[1]), xyz0[2] + f * (xyz1[2] - xyz0[2]), m);\n };\n\n _interpolators.push(['lab', interpolate_lab]);\n\n}).call(this);\n","const getLineFromPoints = require(\"./get-line-from-points.js\");\nconst categorizeIntersection = require(\"./categorize-intersection.js\");\nconst clamp = require(\"./clamp.js\");\nconst couple = require(\"./couple.js\");\nconst clusterLineSegments = require(\"./cluster-line-segments.js\");\nconst getEdges = require(\"./get-edges.js\");\nconst getIntersectionOfTwoLines = require(\"./get-intersection-of-two-lines.js\");\nconst getPolygons = require(\"./get-polygons.js\");\nconst mergeRanges = require(\"./merge-ranges.js\");\nconst partition = require(\"./partition.js\");\nconst prepareSnap = require(\"./prepare-snap.js\");\nconst range = require(\"./range.js\");\n\nmodule.exports = function calculateCore({\n debug_level = 0,\n raster_bbox,\n raster_height, // number of rows of pixels in the raster\n raster_width, // number of columns of pixels in the raster\n pixel_height,\n pixel_width,\n geometry,\n per_pixel,\n per_row_segment\n}) {\n const [raster_xmin, raster_ymin, raster_xmax, raster_ymax] = raster_bbox;\n\n // iterate through image rows and convert each one to a line\n // running through the middle of the row\n const imageLines = [];\n\n if (raster_height === 0) return;\n\n for (let y = 0; y < raster_height; y++) {\n const lat = raster_ymax - pixel_height * y - pixel_height / 2;\n\n // use that point, plus another point along the same latitude to\n // create a line\n const point0 = [raster_xmin, lat];\n const point1 = [raster_xmin + 1, lat];\n const line = getLineFromPoints(point0, point1);\n imageLines.push(line);\n }\n if (debug_level >= 2) console.log(\"[dufour-peyton-intersection] imageLines:\", imageLines);\n\n // collapse geometry down to a list of edges\n // necessary for multi-part geometries\n const polygons = getPolygons(geometry);\n const polygonEdges = polygons.map(getEdges);\n\n polygonEdges.forEach(edges => {\n // iterate through the list of polygon vertices, convert them to\n // lines, and compute the intersections with each image row\n const intersectionsByRow = range(raster_height).map(() => []);\n const numberOfEdges = edges.length;\n for (let i = 0; i < numberOfEdges; i++) {\n // get vertices that make up an edge and convert that to a line\n const edge = edges[i];\n\n const [startPoint, endPoint] = edge;\n const [x1, y1] = startPoint;\n const [x2, y2] = endPoint;\n\n const direction = Math.sign(y2 - y1);\n const horizontal = y1 === y2;\n const vertical = x1 === x2;\n\n const edgeY = y1;\n\n const edgeLine = getLineFromPoints(startPoint, endPoint);\n\n const edgeYMin = Math.min(y1, y2);\n const edgeYMax = Math.max(y1, y2);\n\n let startLng, startLat, endLat, endLng;\n if (x1 < x2) {\n [startLng, startLat] = startPoint;\n [endLng, endLat] = endPoint;\n } else {\n [startLng, startLat] = endPoint;\n [endLng, endLat] = startPoint;\n }\n\n if (startLng === undefined) throw Error(\"startLng is \" + startLng);\n\n // find the y values in the image coordinate space\n const imageY1 = Math.round((raster_bbox[3] - 0.5 * pixel_height - startLat) / pixel_height);\n const imageY2 = Math.round((raster_bbox[3] - 0.5 * pixel_height - endLat) / pixel_height);\n\n // make sure to set the start and end points so that we are\n // incrementing upwards through rows\n let rowStart, rowEnd;\n if (imageY1 < imageY2) {\n rowStart = imageY1;\n rowEnd = imageY2;\n } else {\n rowStart = imageY2;\n rowEnd = imageY1;\n }\n\n rowStart = clamp(rowStart, 0, raster_height - 1);\n rowEnd = clamp(rowEnd, 0, raster_height - 1);\n // iterate through image lines within the change in y of\n // the edge line and find all intersections\n for (let j = rowStart; j < rowEnd + 1; j++) {\n const imageLine = imageLines[j];\n\n if (imageLine === undefined) {\n console.error(\"j:\", j);\n console.error(\"imageLines:\", imageLines);\n throw Error(\"imageLines\");\n }\n\n // because you know x is zero in ax + by = c, so by = c and b = -1, so -1 * y = c or y = -1 * c\n const imageLineY = -1 * imageLine.c;\n\n const startsOnLine = y1 === imageLineY;\n const endsOnLine = y2 === imageLineY;\n const endsOffLine = !endsOnLine;\n\n let xminOnLine, xmaxOnLine;\n if (horizontal) {\n if (edgeY === imageLineY) {\n xminOnLine = startLng;\n xmaxOnLine = endLng;\n } else {\n continue; // stop running calculations for this horizontal line because it doesn't intersect at all\n }\n } else if (vertical) {\n /* we have to have a seprate section for vertical because of floating point arithmetic probs with get_inter...\" */\n if (imageLineY >= edgeYMin && imageLineY <= edgeYMax) {\n xminOnLine = startLng;\n xmaxOnLine = endLng;\n }\n } else if (startsOnLine) {\n // we know that the other end is not on the line because then it would be horizontal\n xminOnLine = xmaxOnLine = x1;\n } else if (endsOnLine) {\n // we know that the other end is not on the line because then it would be horizontal\n xminOnLine = xmaxOnLine = x2;\n } else {\n try {\n xminOnLine = xmaxOnLine = getIntersectionOfTwoLines(edgeLine, imageLine).x;\n } catch (error) {\n throw error;\n }\n }\n\n // check to see if the intersection point is within the range of\n // the edge line segment. If it is, add the intersection to the\n // list of intersections at the corresponding index for that row\n // in intersectionsByRow\n if (\n xminOnLine !== undefined &&\n xmaxOnLine !== undefined &&\n (horizontal || (xminOnLine >= startLng && xmaxOnLine <= endLng && imageLineY <= edgeYMax && imageLineY >= edgeYMin))\n ) {\n intersectionsByRow[j].push({\n direction,\n index: i,\n edge,\n endsOnLine,\n endsOffLine,\n horizontal,\n startsOnLine,\n vertical,\n xmin: xminOnLine,\n xmax: xmaxOnLine,\n imageLineY\n });\n }\n }\n }\n\n const half_pixel_width = pixel_width / 2;\n const snap = prepareSnap(raster_xmin, pixel_width);\n\n intersectionsByRow.forEach((segmentsInRow, row_index) => {\n if (segmentsInRow.length > 0) {\n const clusters = clusterLineSegments(segmentsInRow, numberOfEdges);\n const categorized = clusters.map(categorizeIntersection);\n const [throughs, nonthroughs] = partition(categorized, item => item.through);\n\n if (throughs.length % 2 === 1) {\n if (debug_level >= 1) console.error(\"throughs:\", JSON.stringify(throughs));\n throw Error(\"throughs.length for \" + row_index + \" is odd with \" + throughs.length);\n }\n\n let insides = nonthroughs.map(intersection => [intersection.xmin, intersection.xmax]);\n\n // sorts throughs from left to right in-place\n throughs.sort((a, b) => a.xmin - b.xmin);\n\n const couples = couple(throughs).map(couple => {\n const [left, right] = couple;\n return [left.xmin, right.xmax];\n });\n\n insides = insides.concat(couples);\n\n /*\n This makes sure we don't double count pixels.\n For example, converts `[[0,10],[10,10]]` to `[[0,10]]`\n */\n insides = mergeRanges(insides);\n\n insides.forEach(pair => {\n const [xmin, xmax] = pair;\n\n if (xmax - xmin < half_pixel_width) return;\n\n // snap [xmin, xmax] in srs to raster coordinates\n const [left, right] = snap(pair);\n\n // intersection doesn't take up more than half of a pixel\n if (left === right) return;\n\n // skip because segment is beyond the right edge of the raster\n if (left > raster_width) return;\n\n // skip because segment is beyond the left edge of the raster\n if (right <= 0) return;\n\n const start_column_index = Math.max(left, 0);\n const end_column_index = Math.min(right - 1, raster_width - 1);\n\n if (per_row_segment) {\n per_row_segment({\n row: row_index,\n columns: [start_column_index, end_column_index]\n });\n }\n\n if (per_pixel) {\n for (let column_index = start_column_index; column_index <= end_column_index; column_index++) {\n per_pixel({ row: row_index, column: column_index });\n }\n }\n });\n }\n });\n });\n};\n","const calculateCallbacks = require(\"./calculate-core.js\");\nconst checkRows = require(\"./check-rows.js\");\nconst mergeConsecutiveRanges = require(\"./merge-consecutive-ranges.js\");\n\nmodule.exports = function calculate({\n debug = false,\n raster_bbox,\n raster_height,\n raster_width,\n pixel_height,\n pixel_width,\n geometry,\n per_pixel,\n per_row_segment\n}) {\n const [xmin, ymin, xmax, ymax] = raster_bbox;\n if (pixel_height === undefined || pixel_height === null) pixel_height = (ymax - ymin) / raster_height;\n if (pixel_width === undefined || pixel_width === null) pixel_width = (xmax - xmin) / raster_width;\n\n const rows = new Array(raster_height);\n\n calculateCallbacks({\n raster_bbox,\n raster_height,\n raster_width,\n pixel_height,\n pixel_width,\n geometry,\n per_pixel,\n per_row_segment: ({ row, columns }) => {\n if (!rows[row]) rows[row] = [];\n rows[row].push(columns);\n if (per_row_segment) per_row_segment({ row, columns });\n }\n });\n\n for (let irow = 0; irow < rows.length; irow++) {\n const ranges = rows[irow];\n if (ranges) {\n // sort from left to right\n ranges.sort((a, b) => (a === b ? a[1] - b[1] : a[0] - b[0]));\n\n // replace existing row with sorted and merged one\n rows[irow] = mergeConsecutiveRanges(ranges);\n }\n }\n\n if (debug) checkRows(insides);\n\n return { rows };\n};\n","module.exports = function categorizeIntersection(segments) {\n try {\n let through, xmin, xmax;\n\n const n = segments.length;\n\n const first = segments[0];\n\n if (n === 1) {\n through = true;\n xmin = first.xmin;\n xmax = first.xmax;\n } /* n > 1 */ else {\n const last = segments[n - 1];\n through = first.direction === last.direction;\n xmin = Math.min(first.xmin, last.xmin);\n xmax = Math.max(first.xmax, last.xmax);\n }\n\n if (xmin === undefined || xmax === undefined || through === undefined || isNaN(xmin) || isNaN(xmax)) {\n throw Error(\"categorizeIntersection failed with xmin\", xmin, \"and xmax\", xmax);\n }\n\n return { xmin, xmax, through };\n } catch (error) {\n console.error(\"[categorizeIntersection] segments:\", segments);\n console.error(\"[categorizeIntersection]\", error);\n throw error;\n }\n};\n","module.exports = function checkRanges(rows) {\n rows.forEach((ranges, irow) => {\n for (let irange = 0; irange < ranges.length; irange++) {\n const range = ranges[irange];\n const [start, end] = range;\n if (start > end) {\n console.warn(\"[dufour-peyton-intersection] uh oh, encountered invalid range\", range, \"at row index\", irow, \"with ranges\", ranges);\n }\n\n for (let iother = irange + 1; iother < ranges.length; iother++) {\n if (iother[0] <= end) {\n console.warn(\"[dufour-peyton-intersection] encountered range problem on row index\", irow, \":\", ranges);\n }\n }\n }\n });\n};\n","module.exports = function clamp(n, min, max) {\n if (n < min) return min;\n else if (n > max) return max;\n return n;\n};\n","const cluster = require(\"./cluster.js\");\n\nmodule.exports = function clusterLineSegments(lineSegments, numberOfEdges, debug = false) {\n try {\n const clusters = cluster(lineSegments, s => s.endsOffLine);\n\n const numberOfClusters = clusters.length;\n\n if (numberOfClusters >= 2) {\n const firstCluster = clusters[0];\n const firstSegment = firstCluster[0];\n const lastCluster = clusters[clusters.length - 1];\n const lastSegment = lastCluster[lastCluster.length - 1];\n\n if (lastSegment.index === numberOfEdges - 1 && firstSegment.index === 0 && lastSegment.endsOnLine) {\n clusters[0] = clusters.pop().concat(firstCluster);\n }\n }\n\n return clusters;\n } catch (error) {\n console.error(\"[clusterLineSegments]\", error);\n }\n};\n","module.exports = function cluster(items, newClusterTest) {\n try {\n const numberOfItems = items.length;\n const clusters = [];\n let cluster = [];\n for (let i = 0; i < numberOfItems; i++) {\n const item = items[i];\n cluster.push(item);\n if (newClusterTest(item)) {\n clusters.push(cluster);\n cluster = [];\n }\n }\n\n if (cluster.length > 0) clusters.push(cluster);\n\n return clusters;\n } catch (error) {\n console.error(\"[cluster]:\", error);\n }\n};\n","// This function takes in an array with an even number of elements and\n// returns an array that couples every two consecutive elements;\nmodule.exports = function couple(array) {\n const couples = [];\n const lengthOfArray = array.length;\n for (let i = 0; i < lengthOfArray; i += 2) {\n couples.push([array[i], array[i + 1]]);\n }\n return couples;\n};\n","module.exports = function eachEdge(polygon, callback) {\n polygon.forEach(ring => {\n for (let i = 1; i < ring.length; i++) {\n // should reuse previous endPoint as startPoint to save memory\n const startPoint = ring[i - 1];\n const endPoint = ring[i];\n const edgeIndex = i - 1;\n callback([startPoint, endPoint], edgeIndex);\n }\n });\n};\n","const getDepth = require(\"get-depth\");\n\n// call callback function for each polygon in geojson\nmodule.exports = function eachPolygon(geojson, callback) {\n if (geojson.type === \"FeatureCollection\") {\n geojson.features.forEach(feature => eachPolygon(feature, callback));\n } else if (geojson.type === \"Feature\") {\n eachPolygon(geojson.geometry, callback);\n } else if (geojson.type === \"Polygon\") {\n eachPolygon(geojson.coordinates, callback);\n } else if (geojson.type === \"MultiPolygon\") {\n geojson.coordinates.forEach(polygon => {\n callback(polygon);\n });\n } else if (Array.isArray(geojson)) {\n const depth = getDepth(geojson);\n if (depth === 4) {\n geojson.forEach(polygon => {\n callback(polygon);\n });\n } else if (depth === 3) {\n callback(geojson);\n }\n }\n};\n","const eachPolygon = require(\"./each-polygon.js\");\n\nmodule.exports = function getBoundingBox(geometry) {\n let xmin, ymin, xmax, ymax;\n\n eachPolygon(geometry, polygon => {\n const ring = polygon[0]; // only want the exterior ring\n const imax = ring.length - 1;\n\n let i;\n if (xmin === undefined) {\n xmin = xmax = ring[0][0];\n ymin = ymax = ring[0][1];\n i = 1;\n } else {\n i = 0;\n }\n\n for (; i <= imax; i++) {\n const [x, y] = ring[i];\n if (x < xmin) xmin = x;\n else if (x > xmax) xmax = x;\n if (y < ymin) ymin = y;\n else if (y > ymax) ymax = y;\n }\n });\n\n return [xmin, ymin, xmax, ymax];\n};\n","const eachEdge = require(\"./each-edge.js\");\n\nmodule.exports = function getEdges(polygon) {\n const edges = [];\n eachEdge(polygon, edge => edges.push(edge));\n return edges;\n};\n","// function to get the point at which two lines intersect\n// the input uses the line representations from the\n// getLineFromPoints function\nmodule.exports = function getIntersectionOfTwoLines(line1, line2) {\n // calculate the determinant, ad - cb in a square matrix |a b|\n const det = line1.a * line2.b - line2.a * line1.b; /* |c d| */\n\n if (det) {\n // this makes sure the lines aren't parallel, if they are, det will equal 0\n const x = (line2.b * line1.c - line1.b * line2.c) / det;\n const y = (line1.a * line2.c - line2.a * line1.c) / det;\n return { x, y };\n }\n};\n","// function to convert two points into a\n// representation of a line\nmodule.exports = function getLineFromPoints(startPoint, endPoint) {\n // get a, b, and c from line equation ax + by = c\n const [x1, y1] = startPoint;\n const [x2, y2] = endPoint;\n const a = y2 - y1;\n const b = x1 - x2;\n const c = a * x1 + b * y1;\n\n // return just a b and c since that is all we need\n // to compute the intersection\n return { a, b, c };\n};\n","const eachPolygon = require(\"./each-polygon.js\");\n\nmodule.exports = function getPolygons(geojson) {\n const polygons = [];\n eachPolygon(geojson, polygon => polygons.push(polygon));\n return polygons;\n};\n","const categorizeIntersection = require(\"./categorize-intersection.js\");\nconst clamp = require(\"./clamp.js\");\nconst cluster = require(\"./cluster.js\");\nconst clusterLineSegments = require(\"./cluster-line-segments.js\");\nconst calculate = require(\"./calculate.js\");\nconst calculateCore = require(\"./calculate-core.js\");\nconst couple = require(\"./couple.js\");\nconst getBoundingBox = require(\"./get-bounding-box.js\");\nconst getPolygons = require(\"./get-polygons.js\");\nconst eachEdge = require(\"./each-edge.js\");\nconst getIntersectionOfTwoLines = require(\"./get-intersection-of-two-lines.js\");\nconst getLineFromPoints = require(\"./get-line-from-points.js\");\nconst mergeRanges = require(\"./merge-ranges.js\");\nconst partition = require(\"./partition.js\");\nconst prepareSnap = require(\"./prepare-snap.js\");\nconst range = require(\"./range.js\");\nconst roundDown = require(\"./round-down.js\");\n\nconst dufour_peyton_intersection = {\n calculate,\n calculateCore,\n categorizeIntersection,\n clamp,\n cluster,\n clusterLineSegments,\n couple,\n eachEdge,\n getBoundingBox,\n getIntersectionOfTwoLines,\n getLineFromPoints,\n getPolygons,\n mergeRanges,\n partition,\n prepareSnap,\n range,\n roundDown\n};\n\nif (typeof define === \"function\" && define.amd) define(() => dufour_peyton_intersection);\nif (typeof module === \"object\") module.exports = dufour_peyton_intersection;\nif (typeof self == \"object\") self.dufour_peyton_intersection = dufour_peyton_intersection;\nif (typeof window == \"object\") window.dufour_peyton_intersection = dufour_peyton_intersection;\n","module.exports = function mergeConsecutiveRanges(ranges) {\n const numberOfRanges = ranges.length;\n if (numberOfRanges > 0) {\n const firstRange = ranges[0];\n let previousEnd = firstRange[1];\n const result = [firstRange];\n for (let i = 1; i < numberOfRanges; i++) {\n const tempRange = ranges[i];\n const [start, end] = tempRange;\n if (start <= previousEnd + 1) {\n result[result.length - 1][1] = end;\n } else {\n result.push(tempRange);\n }\n previousEnd = end;\n }\n return result;\n }\n};\n","// This function takes in an array of number pairs and combines where there's overlap\nmodule.exports = function mergeRanges(ranges) {\n const numberOfRanges = ranges.length;\n if (numberOfRanges > 0) {\n const firstRange = ranges[0];\n let previousEnd = firstRange[1];\n const result = [firstRange];\n for (let i = 1; i < numberOfRanges; i++) {\n const tempRange = ranges[i];\n const [start, end] = tempRange;\n if (start <= previousEnd) {\n result[result.length - 1][1] = end;\n } else {\n result.push(tempRange);\n }\n previousEnd = end;\n }\n return result;\n }\n};\n","module.exports = function partition(array, filter) {\n const passed = [];\n const unpassed = [];\n const len = array.length;\n for (let i = 0; i < len; i++) {\n const item = array[i];\n if (filter(item)) passed.push(item);\n else unpassed.push(item);\n }\n return [passed, unpassed];\n};\n","const roundDown = require(\"./round-down.js\");\n\n/**\n * @name prepareSnap\n * @description snap horizontal range in crs to model space\n * @private\n * @param {Number} raster_xmin\n * @param {Number} pixel_width\n * @return {([Number, Number]) => [Number, Number]}\n */\nmodule.exports = function prepareSnap(raster_xmin, pixel_width) {\n return ([xmin, xmax]) => {\n // use roundDown so 1.5 is rounded to 1 not 2\n xmin = roundDown((xmin - raster_xmin) / pixel_width);\n if (xmin === -0) xmin = 0;\n\n xmax = Math.round((xmax - raster_xmin) / pixel_width);\n if (xmax === -0) xmax = 0;\n\n return [xmin, xmax];\n };\n};\n","module.exports = function range(count) {\n const result = new Array(count);\n for (let i = 0; i < count; i++) result[i] = i;\n return result;\n};\n","/**\n * @name roundDown\n * @description like Math.round, but numbers in the middle are rounded down not up\n * @param {Number} n\n * @returns {Number} rounded number\n */\nmodule.exports = function roundDown(n) {\n return -1 * Math.round(-1 * n);\n};\n","var loadImageCache = {};\n\nfunction loadImage(url, options) {\n var debug = (options && options.debug) || false;\n var useCache = (options && options.useCache) || false;\n var crossOrigin = (options && options.crossOrigin) || null;\n if (debug) console.log(\"[easy-image-loader] starting to load\", url);\n\n if (useCache && loadImageCache[url]) return loadImageCache[url];\n\n const promise = new Promise(function (resolve, reject) {\n var timeout;\n var img = document.createElement(\"img\");\n img.onload = function () {\n if (debug) console.log(\"[easy-image-loader] successfully loaded\", url);\n if (timeout) clearTimeout(timeout);\n resolve(img);\n };\n img.onerror = function (error) {\n if (debug) console.error(\"[easy-image-loader] failed to load\", url);\n if (timeout) clearTimeout(timeout);\n reject(error);\n };\n img.src = url;\n img.crossOrigin = crossOrigin;\n if (options && typeof options.timeout === \"number\") {\n setTimeout(() => {\n if (debug) console.error(\"[easy-image-loader] timed out loading\", url);\n reject(new Error(\"timeout\"));\n }, options.timeout);\n }\n });\n\n if (useCache) loadImageCache[url] = promise;\n\n return promise;\n}\n\nif (typeof define === \"function\" && define.amd)\n define(function () {\n return loadImage;\n });\nif (typeof window !== \"undefined\") window.loadImage = loadImage;\nif (typeof self !== \"undefined\") self.loadImage = loadImage;\nif (typeof global !== \"undefined\") global.loadImage = loadImage;\nif (typeof module !== \"undefined\") module.exports = loadImage;\n","\"use strict\";\n\nconst clean = require(\"./clean.js\");\n\nfunction absolute(n) {\n n = clean(n);\n if (n[0] === \"-\") return n.substring(1);\n else return n;\n}\n\nmodule.exports = absolute;\nmodule.exports.default = absolute;\n","\"use strict\";\n\nconst compare_positive = require(\"./compare_positive.js\");\nconst clean = require(\"./clean.js\");\nconst long_addition = require(\"./long_addition.js\");\nconst long_subtraction = require(\"./long_subtraction.js\");\n\nfunction add(a, b) {\n a = clean(a);\n b = clean(b);\n\n const apos = a[0] !== \"-\";\n const bpos = b[0] !== \"-\";\n\n if (apos && bpos) {\n return long_addition(a, b);\n } else if (!apos && !bpos) {\n return \"-\" + long_addition(a.substring(1), b.substring(1));\n } else if (!apos && bpos) {\n a = a.substring(1);\n switch (compare_positive(a, b)) {\n case \"=\":\n return \"0\";\n case \"<\":\n return long_subtraction(b, a);\n case \">\":\n return \"-\" + long_subtraction(a, b);\n }\n } else if (apos && !bpos) {\n b = b.substring(1);\n switch (compare_positive(a, b)) {\n case \"=\":\n return \"0\";\n case \"<\":\n return \"-\" + long_subtraction(b, a);\n case \">\":\n return long_subtraction(a, b);\n }\n }\n}\n\nmodule.exports = add;\nmodule.exports.default = add;\n","\"use strict\";\n\nconst expand = require(\"./expand.js\");\n\nmodule.exports = function clean(n) {\n // remove + from beginning\n if (n[0] === \"+\") n = n.substring(1);\n\n n = expand(n);\n\n // remove extra zero in front\n // 03938.123 => 3938.123\n n = n.replace(/^0+(?=\\d)/, \"\");\n\n // remove extra zero at end\n if (n.includes(\".\")) n = n.replace(/\\.?0+$/, \"\");\n\n // should improve this, so it identifies zero earlier\n if (n === \"\") n = \"0\";\n\n if (n === \"-0\") n = \"0\";\n\n return n;\n};\n","\"use strict\";\n\n// given:\n// - a and b are positive numbers\n// - a and b have been cleaned (i.e. no + or leading zeros)\nfunction compare_positive(a, b) {\n const alen = a.length;\n const blen = b.length;\n\n const aidx = a.indexOf(\".\");\n const bidx = b.indexOf(\".\");\n\n // basically where would the dot be\n // if we add a dot at the end of integers\n // like 123.\n const a_adjusted_dot_index = aidx === -1 ? alen : aidx;\n const b_adjusted_dot_index = bidx === -1 ? blen : bidx;\n\n // how much you need to shift the second number\n // to line up the decimal with the first\n // 0.12345\n // 12345.0\n\n const offset = a_adjusted_dot_index - b_adjusted_dot_index;\n\n let left = Math.max(a_adjusted_dot_index, b_adjusted_dot_index);\n\n let right = Math.max(alen - a_adjusted_dot_index, blen - b_adjusted_dot_index);\n\n let aoffset = offset < 0 ? -1 * offset : 0;\n let boffset = offset <= 0 ? 0 : offset;\n\n let imax = left + 1 + right - 1; // -1 for zero-index\n\n let i = 0;\n while (i < imax) {\n const ai = i - aoffset;\n const achar = ai === a_adjusted_dot_index ? \".\" : a[ai] || \"0\";\n const bi = i - boffset;\n const bchar = bi === b_adjusted_dot_index ? \".\" : b[bi] || \"0\";\n if (achar !== bchar) {\n if (achar > bchar) return \">\";\n else if (achar < bchar) return \"<\";\n }\n i++;\n }\n\n return \"=\";\n}\n\nmodule.exports = compare_positive;\nmodule.exports.default = compare_positive;\n","\"use strict\";\n\n// Internet Explorer doesn't support Number.MAX_SAFE_INTEGER\n// so we just define the constant ourselves\nconst MAX_SAFE_INTEGER = 9007199254740991;\n\n// the greatest number of digits an integer can have\n// and be guaranteed to be stored safely as a floating point.\n// subtract 1 because MAX_SAFE_INTEGER isn't all 9's\nconst MAX_SAFE_INTEGER_LENGTH = MAX_SAFE_INTEGER.toString().length - 1;\n\nmodule.exports = {\n MAX_SAFE_INTEGER,\n MAX_SAFE_INTEGER_LENGTH\n};\n","\"use strict\";\n\nconst absolute = require(\"./absolute.js\");\nconst clean = require(\"./clean.js\");\nconst long_division = require(\"./long_division.js\");\n\nfunction divide(dividend, divisor, options) {\n dividend = clean(dividend);\n divisor = clean(divisor);\n\n if (divisor === \"0\") throw new Error(\"[preciso] division by zero\");\n\n // sometimes dividend can be cleaned to \"\"\n if (dividend === \"\" || dividend === \"0\") return \"0\";\n\n const dividend_is_positive = dividend[0] !== \"-\";\n const divisor_is_positive = divisor[0] !== \"-\";\n\n const out_sign = dividend_is_positive !== divisor_is_positive ? \"-\" : \"\";\n\n if (!dividend_is_positive) dividend = absolute(dividend);\n if (!divisor_is_positive) divisor = absolute(divisor);\n\n return out_sign + long_division(dividend, divisor, options);\n}\n\nmodule.exports = divide;\nmodule.exports.default = divide;\n","\"use strict\";\n\n// convert exponential notation to normal string\n// not optimized yet and no support for big numbers\nfunction expand(n) {\n // remove + from beginning\n if (n[0] === \"+\") n = n.substring(1);\n\n const sign = n[0] === \"-\" ? \"-\" : \"\";\n if (sign === \"-\") n = n.substring(1);\n\n const index_of_e = n.indexOf(\"e\");\n\n // number not in exponential notation\n if (index_of_e === -1) return sign + n;\n\n let index_of_dot = n.indexOf(\".\");\n\n // if number doesn't include a period dot\n // then just assume it at the end\n // such that 3e4 has index of dot at 1\n if (index_of_dot === -1) index_of_dot = index_of_e;\n\n const shift = Number(n.substring(index_of_e + 1));\n\n // remove old decimal place\n const base = n.substring(0, index_of_e).replace(\".\", \"\");\n\n // normalize shift to start of the string at index zero\n const normshift = index_of_dot + shift;\n\n const baselen = base.length;\n\n if (normshift >= baselen) {\n const zct = normshift - baselen;\n let result = base;\n for (let i = 0; i < zct; i++) result += \"0\";\n return sign + result;\n } else if (normshift < 0) {\n // need to add zeros in decimal places\n let result = \"0.\";\n for (let i = 0; i > normshift; i--) result += \"0\";\n result += base;\n return sign + result;\n } else {\n // shifting within the base\n return sign + base.substring(0, normshift) + \".\" + base.substring(normshift);\n }\n}\n\nmodule.exports = expand;\nmodule.exports.default = expand;\n","\"use strict\";\n\nconst { MAX_SAFE_INTEGER_LENGTH } = require(\"./constants.js\");\n\n// assumes both numbers are positive numbers\nfunction long_addition(a, b) {\n const alen = a.length;\n const blen = b.length;\n\n const aidx = a.indexOf(\".\");\n const bidx = b.indexOf(\".\");\n\n // basically where would the dot be\n // if we add a dot at the end of integers\n // like 123.\n const a_adjusted_dot_index = aidx === -1 ? alen : aidx;\n const b_adjusted_dot_index = bidx === -1 ? blen : bidx;\n\n // just use floating point arithmetic for small integers\n if (aidx === -1 && bidx === -1 && alen < MAX_SAFE_INTEGER_LENGTH && blen < MAX_SAFE_INTEGER_LENGTH) {\n return (Number(a) + Number(b)).toFixed();\n }\n\n // how much you need to shift the second number\n // to line up the decimal with the first\n // 0.12345\n // 12345.0\n\n const offset = a_adjusted_dot_index - b_adjusted_dot_index;\n\n let left = Math.max(a_adjusted_dot_index, b_adjusted_dot_index);\n\n let right = Math.max(alen - a_adjusted_dot_index - 1, blen - b_adjusted_dot_index - 1);\n\n let aoffset = offset < 0 ? -1 * offset : 0;\n let boffset = offset <= 0 ? 0 : offset;\n\n let imax = left + 1 + right - 1; // -1 for zero-index\n\n let result = \"\";\n\n let carried = 0;\n\n // to the right of the period\n // 0.12345\n // 12345.0\n let i = imax;\n if (right > 0) {\n while (i > imax - right) {\n const achar = a[i - aoffset] || \"0\";\n const bchar = b[i - boffset] || \"0\";\n let n = Number(achar) + Number(bchar) + carried;\n if (n >= 10) {\n n -= 10;\n carried = 1;\n } else {\n carried = 0;\n }\n if (result !== \"\" || n !== 0) {\n result = n + result;\n }\n i--;\n }\n if (result) result = \".\" + result;\n i--; // substract 1 for dot\n }\n\n if (left > 0) {\n while (i >= 0) {\n const achar = a[i - aoffset] || \"0\";\n const bchar = b[i - boffset] || \"0\";\n let n = Number(achar) + Number(bchar) + carried;\n if (n >= 10) {\n n -= 10;\n carried = 1;\n } else {\n carried = 0;\n }\n result = n + result;\n i--;\n }\n }\n\n if (carried === 1) {\n result = carried + result;\n }\n\n if (result[0] === \".\") result = \"0\" + result;\n\n return result;\n}\n\nmodule.exports = long_addition;\nmodule.exports.default = long_addition;\n","\"use strict\";\n\nconst compare_positive = require(\"./compare_positive.js\");\nconst add = require(\"./add.js\");\nconst subtract = require(\"./subtract.js\");\nconst round_last_decimal = require(\"./round_last_decimal.js\");\n\n// given dividend and divisor are positive numberical strings\nfunction long_division(dividend, divisor, { max_decimal_digits = 100, ellipsis = false } = {}) {\n // remove unnecessary starting zeros\n // ex: 0.5 => .5\n if (dividend[0] === \"0\") dividend = dividend.substring(1);\n if (divisor[0] === \"0\") divisor = divisor.substring(1);\n\n const dividend_index_of_dot = dividend.indexOf(\".\");\n const divisor_index_of_dot = divisor.indexOf(\".\");\n\n const adjusted_dividend_index_of_dot = dividend_index_of_dot === -1 ? dividend.length : dividend_index_of_dot;\n const divisor_num_decimal_places = divisor_index_of_dot === -1 ? 0 : divisor.length - 1 - divisor_index_of_dot;\n\n // whether the result has a repeating decimal\n // e.g. 1/3 is repeating as in \"0.333...\"\n let repeating = false;\n\n // remove decimals\n dividend = dividend.replace(/\\./, \"\");\n divisor = divisor.replace(/\\./, \"\");\n\n const dividend_length = dividend.length;\n\n let current = \"\";\n let quotient = \"\";\n let comparison;\n let offset = -1 * divisor_num_decimal_places;\n let skip = 0;\n for (let i = 0; i < dividend_length; i++) {\n const char = dividend[i];\n\n current += char;\n\n comparison = compare_positive(current, divisor);\n\n if (comparison === \">\") {\n // same as const times = Math.floor(current / divisor);\n // but without floating point problems\n let times = 1;\n let product = add(divisor, divisor);\n let passed_product = divisor;\n while (compare_positive(product, current) !== \">\") {\n times++;\n passed_product = product;\n product = add(product, divisor);\n }\n times = times.toString();\n\n if (quotient !== \"\") {\n for (let i = times.length; i <= skip; i++) quotient += \"0\";\n }\n quotient += times; // string concatentation\n\n current = subtract(current, passed_product);\n\n skip = 0;\n } else if (comparison === \"<\") {\n if (quotient === \"\") {\n offset++;\n }\n skip++;\n\n // outside greater than inside\n continue;\n } else if (comparison === \"=\") {\n if (quotient !== \"\") {\n for (let i = 0; i < skip; i++) quotient += \"0\";\n }\n quotient += \"1\";\n current = \"0\";\n skip = 0;\n }\n }\n\n if (current.match(/^0+$/g)) {\n if (comparison === \"<\") {\n quotient += current.substring(0, current.length - 1);\n }\n } else {\n const previous = {};\n\n // keep dividing until we have an answer\n // figure out current place of decimal number\n const idot = adjusted_dividend_index_of_dot - offset;\n const qlen = quotient.length;\n // add 1 extra for rounding purposes\n const imax = idot - qlen + max_decimal_digits + 1;\n\n // reset skip if just \"\" so far because don't want to count 0 in 0.\n if (quotient === \"\") {\n skip = 0;\n }\n\n for (let i = 0; i < imax; i++) {\n current += \"0\";\n if (ellipsis) {\n if (current in previous) {\n previous[current]++;\n if (previous[current] > 3) {\n quotient += \"...\";\n repeating = true;\n break;\n }\n } else {\n previous[current] = 1;\n }\n }\n const comparison = compare_positive(current, divisor);\n\n if (comparison === \">\") {\n // inside greater than outside\n\n // how many times the divisor goes into the current\n let times = 1;\n let product = add(divisor, divisor);\n let passed_product = divisor;\n while (compare_positive(product, current) !== \">\") {\n times++;\n passed_product = product;\n product = add(product, divisor);\n }\n\n times = times.toString();\n\n // pad left zeros\n for (let i = times.length; i <= skip; i++) quotient += \"0\";\n quotient += times; // string concatentation\n current = subtract(current, passed_product);\n\n if (current === \"0\") {\n break;\n }\n\n skip = 0;\n } else if (comparison === \"<\") {\n // outside greater than inside\n skip++;\n continue;\n } else if (comparison === \"=\") {\n // fill in previous with zeros\n for (let i = 0; i < skip; i++) quotient += \"0\";\n quotient += \"1\";\n skip = 0;\n break;\n }\n }\n }\n\n // reinsert decimal place\n\n const idot = adjusted_dividend_index_of_dot - offset;\n const qlen = quotient.length;\n\n let num_decimals;\n\n if (idot === qlen) {\n // integer number so don't do anything\n num_decimals = 0;\n } else if (idot < 0) {\n quotient = \"0.\" + \"0\".repeat(Math.abs(idot)) + quotient;\n num_decimals = qlen - idot; // idot is negative, so adding\n } else if (idot > qlen) {\n // add more zeros to integer\n for (let i = qlen; i < idot; i++) quotient += \"0\";\n num_decimals = 0;\n } else if (idot < qlen) {\n quotient = quotient.substring(0, idot) + \".\" + quotient.substring(idot);\n num_decimals = qlen - idot;\n } else if (idot === 0) {\n quotient = \"0.\" + quotient;\n num_decimals = qlen;\n }\n\n // remove zeros from front\n // 03938.123 => 3938.123\n quotient = quotient.replace(/^0+/, \"\");\n\n // remove extra zeros from the end\n quotient = quotient.replace(/\\.\\d+0+$/, \"\");\n\n // round if necessary\n if (!repeating) {\n const extra_decimals = num_decimals - max_decimal_digits;\n if (extra_decimals > 0) {\n quotient = round_last_decimal(quotient.substring(0, quotient.length - extra_decimals + 1));\n }\n }\n\n if (quotient[0] === \".\") quotient = \"0\" + quotient;\n\n return quotient;\n}\n\nmodule.exports = long_division;\nmodule.exports.default = long_division;\n","\"use strict\";\n\nconst { MAX_SAFE_INTEGER_LENGTH } = require(\"./constants.js\");\n\nconst CHUNK_SIZE = 15;\n\n/**\n *\n * @param {String} a - numerical string larger or equal to b\n * @param {String} b - numerical string smaller or equal to a\n * @returns {String} product - result of multiplying a with b\n */\n\nfunction long_multiplication(a, b) {\n if (a === \"0\" || b === \"0\") return \"0\";\n\n const top_index_of_dot = a.indexOf(\".\");\n const bottom_index_of_dot = b.indexOf(\".\");\n\n const a_num_integer_places = top_index_of_dot === -1 ? a.length : top_index_of_dot;\n const b_num_integer_places = bottom_index_of_dot === -1 ? b.length : bottom_index_of_dot;\n const max_total_num_integer_places = a_num_integer_places + b_num_integer_places;\n\n const a_num_decimal_places = top_index_of_dot === -1 ? 0 : a.length - 1 - top_index_of_dot;\n const b_num_decimal_places = bottom_index_of_dot === -1 ? 0 : b.length - 1 - bottom_index_of_dot;\n\n const out_num_decimal_places = a_num_decimal_places + b_num_decimal_places;\n\n if (out_num_decimal_places === 0 && max_total_num_integer_places < MAX_SAFE_INTEGER_LENGTH) {\n return (Number(a) * Number(b)).toFixed(0);\n }\n\n // remove decimals\n const aint = a.replace(\".\", \"\");\n const bint = b.replace(\".\", \"\");\n\n const alen = aint.length;\n const blen = bint.length;\n\n const chunks = [];\n let i = alen;\n while (i >= 0) {\n const end = i;\n const start = (i -= CHUNK_SIZE);\n const str = aint.substring(start, end);\n chunks.push([Number(str), str.length]);\n }\n\n const partial_products = [];\n const partials = [];\n\n // for each number in multiplier\n for (let i = 0, ireverse = blen - 1; ireverse >= 0; ireverse--, i++) {\n const bstr = bint[ireverse];\n\n const bnum = Number(bstr);\n\n let carried = 0;\n let partial = \"\";\n const ichunklast = chunks.length - 1;\n chunks.forEach(([chunk, chunklen], c) => {\n const subpartial = carried + bnum * chunk;\n let subpartstr = subpartial.toString();\n const subpartcharlen = subpartstr.length;\n if (subpartcharlen > chunklen && c !== ichunklast) {\n const islice = -1 * chunklen;\n partial = subpartstr.slice(islice) + partial;\n carried = Number(subpartstr.slice(0, islice));\n } else {\n const imax = chunklen - subpartcharlen;\n for (let i = 0; i < imax; i++) {\n subpartstr = \"0\" + subpartstr;\n }\n carried = 0;\n partial = subpartstr + partial;\n }\n });\n\n // add number of zeros at end\n partial += \"0\".repeat(i);\n\n partial_products.push(partial);\n\n partials.push([Array.from(partial).map(char => Number(char)), partial.length]);\n }\n\n // back to front, iterate through columns\n // and add partial products together\n const num_partials = partial_products.length;\n\n const number_of_columns = partials[partials.length - 1][1] + num_partials;\n\n let result = \"\";\n let carried = 0;\n for (let icol = 0; icol < number_of_columns; icol++) {\n let sum = carried;\n const pmax = Math.min(icol, num_partials - 1);\n for (let p = 0; p <= pmax; p++) {\n const [pnums, plen] = partials[p];\n const i = plen - 1 - icol;\n if (i >= 0) {\n sum += pnums[i];\n }\n }\n\n if (sum >= 10) {\n sum = sum.toString();\n result = sum[sum.length - 1] + result;\n carried = Number(sum.slice(0, -1));\n } else {\n result = sum + result;\n carried = 0;\n }\n }\n\n // add decimal back in\n if (out_num_decimal_places === 0) {\n // integer\n // remove extra zeros\n result = result.replace(/^0+/, \"\");\n } else {\n // decimal number\n const idot = result.length - out_num_decimal_places;\n\n result = result.substring(0, idot) + \".\" + result.substring(idot);\n\n // remove zeros from front\n result = result.replace(/^0+/, \"\");\n\n // remove extra zeros from the end\n result = result.replace(/\\.?0+$/, \"\");\n\n if (result[0] === \".\") result = \"0\" + result;\n }\n\n return result;\n}\n\nmodule.exports = long_multiplication;\nmodule.exports.default = long_multiplication;\n","\"use strict\";\n\n// const lookup = {};\n// const vals = [undefined, 0, 1, 2, 3, 4, 5, 6, 8, 9];\n// vals.forEach(top => {\n// lookup[top] = {};\n// vals.forEach(bottom => {\n// lookup[top][bottom] = (top || 0) - (bottom || 0);\n// })\n// });\n\nconst { MAX_SAFE_INTEGER_LENGTH } = require(\"./constants.js\");\n\n// assumes (1) both a and b are positive numbers\n// and (2) a is larger than b\nfunction long_subtraction(a, b) {\n const alen = a.length;\n const blen = b.length;\n\n const aidx = a.indexOf(\".\");\n const bidx = b.indexOf(\".\");\n\n // basically where would the dot be\n // if we add a dot at the end of integers\n // like 123.\n const a_adjusted_dot_index = aidx === -1 ? alen : aidx;\n const b_adjusted_dot_index = bidx === -1 ? blen : bidx;\n // console.log({a_adjusted_dot_index, b_adjusted_dot_index});\n\n // how much you need to shift the second number\n // to line up the decimal with the first\n // 0.12345\n // 12345.0\n\n // just use floating point arithmetic for small integers\n if (aidx === -1 && bidx === -1 && alen < MAX_SAFE_INTEGER_LENGTH && blen < MAX_SAFE_INTEGER_LENGTH) {\n return (Number(a) - Number(b)).toFixed();\n }\n\n const offset = a_adjusted_dot_index - b_adjusted_dot_index;\n // console.log(\"offset:\", offset);\n\n let left = Math.max(a_adjusted_dot_index, b_adjusted_dot_index);\n // console.log(\"left:\", left);\n\n let right = Math.max(alen - a_adjusted_dot_index - 1, blen - b_adjusted_dot_index - 1);\n // console.log(\"right:\", right);\n\n let aoffset = offset < 0 ? -1 * offset : 0;\n let boffset = offset <= 0 ? 0 : offset;\n // console.log({aoffset, boffset});\n\n let imax = left + 1 + right - 1; // -1 for zero-index\n // console.log({imax});\n\n let result = \"\";\n\n // number of borrowings\n let borrowed = 0;\n\n // to the right of the period\n // 100.5 6 7\n // 2.2 9 3\n // (-3 + 10) 4\n let i = imax;\n if (right > 0) {\n while (i > imax - right) {\n // console.log(\"\\n\\n\", {i});\n let top = a[i - aoffset] || \"0\";\n let bottom = b[i - boffset] || \"0\";\n\n // console.log(\"pre borrowing\", {top, bottom});\n top -= borrowed;\n borrowed = 0;\n\n // console.log(\"after borrowing\", {top, bottom});\n let n = top - bottom;\n\n // console.log({n});\n if (n < 0) {\n while (n < 0) {\n borrowed++;\n n += 10;\n }\n } else if (borrowed) {\n borrowed--;\n }\n // console.log({n});\n if (result !== \"\" || n !== 0) {\n result = n + result;\n }\n i--;\n }\n if (result !== \"\") {\n result = \".\" + result;\n }\n i--; // substract 1 for dot\n }\n\n // console.log({result});\n\n if (left > 0) {\n while (i > 0) {\n // console.log(\"\\n\\n\", {i});\n let top = a[i - aoffset] || \"0\";\n let bottom = b[i - boffset] || \"0\";\n\n // console.log(\"pre borrowing\", {top, bottom});\n top -= borrowed;\n borrowed = 0;\n\n // console.log(\"after borrowing\", {top, bottom});\n let n = top - bottom;\n\n // console.log({n});\n if (n < 0) {\n while (n < 0) {\n borrowed++;\n n += 10;\n }\n } else if (borrowed) {\n borrowed--;\n }\n // console.log({n});\n result = n + result;\n i--;\n }\n\n // console.log({borrowed});\n // special rule for last one\n const achar = a[0 - aoffset] || \"0\";\n const bchar = b[0 - boffset] || \"0\";\n let n = Number(achar) - (borrowed > 0 ? 1 : 0) - Number(bchar);\n if (n !== 0) {\n result = n + result;\n }\n\n // remove any zeros in front like in 0123\n result = result.replace(/^0+/, \"\");\n }\n\n // if decimal number add zero\n if (result[0] === \".\") result = \"0\" + result;\n\n return result;\n}\n\nmodule.exports = long_subtraction;\nmodule.exports.default = long_subtraction;\n","\"use strict\";\n\nconst absolute = require(\"./absolute.js\");\nconst clean = require(\"./clean.js\");\nconst compare_positive = require(\"./compare_positive.js\");\nconst long_multiplication = require(\"./long_multiplication.js\");\n\nfunction multiply(a, b) {\n a = clean(a);\n b = clean(b);\n\n const apos = a[0] !== \"-\";\n const bpos = b[0] !== \"-\";\n\n const out_sign = apos !== bpos ? \"-\" : \"\";\n\n a = absolute(a);\n b = absolute(b);\n\n const comparison = compare_positive(a, b);\n\n if (comparison === \"<\") {\n const aold = a;\n const bold = b;\n a = bold;\n b = aold;\n }\n\n return out_sign + long_multiplication(a, b);\n}\n\nmodule.exports = multiply;\nmodule.exports.default = multiply;\n","\"use strict\";\n\nconst add = require(\"./add.js\");\nconst truncate_decimal = require(\"./truncate_decimal.js\");\n\n// given n is a positive decimal number\nconst up = [\"5\", \"6\", \"7\", \"8\", \"9\"];\n\nfunction round_last_decimal(n) {\n // will round up to an integer\n if (n.match(/\\.9+$/)) {\n return add(truncate_decimal(n), \"1\");\n }\n\n // remove + from beginning\n if (n[0] === \"+\") n = n.substring(1);\n\n //console.log(\"rounding:\", {n});\n const len = n.length;\n //console.log({len});\n let result = \"\";\n\n const last_char = n[n.length - 1];\n //console.log({last_char});\n\n if (up.includes(last_char)) {\n let i;\n for (i = len - 2; i >= 0; i--) {\n const char = n[i];\n //console.log({char});\n // skip over . or -\n if (char === \".\" || char === \"-\") continue;\n\n const nchar = Number(char) + 1;\n //console.log({nchar});\n\n if (nchar === 10) {\n result = \"0\" + result;\n // keep rounding up\n } else {\n result = nchar + result;\n break;\n }\n }\n //console.log({i});\n if (i > 0) result = n.substring(0, i) + result;\n } else {\n result = n.substring(0, len - 1);\n }\n\n if (result[result.length - 1] === \".\") result = result.substring(0, result.length - 1);\n\n // remove trailing zeros in decimal number\n // 0.50 => 0.5\n if (result.indexOf(\".\") > -1) result = result.replace(/0+$/, \"\");\n\n return result;\n}\n\nmodule.exports = round_last_decimal;\nmodule.exports.default = round_last_decimal;\n","\"use strict\";\n\nconst clean = require(\"./clean\");\nconst compare_positive = require(\"./compare_positive.js\");\nconst long_addition = require(\"./long_addition.js\");\nconst long_subtraction = require(\"./long_subtraction.js\");\n\nfunction subtract(a, b) {\n a = clean(a);\n b = clean(b);\n\n const a_is_positive = a[0] !== \"-\";\n const b_is_positive = b[0] !== \"-\";\n if (a_is_positive) {\n if (b_is_positive) {\n const comparison = compare_positive(a, b);\n if (comparison === \">\") {\n return long_subtraction(a, b);\n } else if (comparison === \"<\") {\n return \"-\" + long_subtraction(b, a);\n } else {\n return \"0\";\n }\n } else {\n return long_addition(a, b.substring(1));\n }\n } else if (b_is_positive) {\n return \"-\" + long_addition(a.substring(1), b);\n } else {\n a = a.substring(1);\n b = b.substring(1);\n const comparison = compare_positive(a, b);\n if (comparison === \">\") {\n return \"-\" + long_subtraction(a, b);\n } else if (comparison === \"<\") {\n return long_subtraction(b, a);\n } else {\n return \"0\";\n }\n }\n}\n\nmodule.exports = subtract;\nmodule.exports.default = subtract;\n","\"use strict\";\n\n// given n is a decimal number\nfunction truncate_decimal(n) {\n return n.substring(0, n.indexOf(\".\"));\n}\n\nmodule.exports = truncate_decimal;\nmodule.exports.default = truncate_decimal;\n","// takes in image data array and sets alpha value to 0 for parts outside the mask geometry\nfunction maskImageData({\n data,\n data_bbox,\n data_height,\n data_width,\n data_srs,\n debug = false,\n geomask,\n mask,\n mask_srs,\n reproject,\n strategy = \"outside\",\n edition\n}) {\n if (![\"inside\", \"outside\"].includes(strategy)) {\n throw new Error(`[geocanvas] strategy can be either \"inside\" or \"outside\". you provided \"${strategy}\"`);\n }\n const { rows } = geomask[strategy]({\n raster_bbox: data_bbox,\n raster_height: data_height,\n raster_width: data_width,\n raster_srs: data_srs,\n mask,\n mask_srs,\n reproject\n });\n\n rows.forEach((ranges, r) => {\n if (ranges) {\n const row_offset = r * 4 * data_width;\n ranges.forEach(([start, end]) => {\n for (let c = start; c <= end; c++) {\n data[row_offset + c * 4 + 3] = 0; // set alpha to zero\n }\n });\n }\n });\n}\n\nfunction maskCanvas({\n canvas,\n canvas_bbox,\n canvas_srs,\n geomask,\n mask,\n mask_srs,\n reproject,\n strategy = \"outside\",\n edition,\n debug = false\n}) {\n if (debug) console.log(\"[geocanvas] starting to mask canvas\");\n if (![\"inside\", \"outside\"].includes(strategy)) {\n throw new Error(`[geocanvas] strategy can be either \"inside\" or \"outside\". you provided \"${strategy}\"`);\n }\n const context = canvas.getContext(\"2d\");\n const { height, width } = canvas;\n if (debug) console.log(`[geocanvas] canvas height is ${height} pixels`);\n if (debug) console.log(`[geocanvas] canvas width is ${width} pixels`);\n const imageData = context.getImageData(0, 0, width, height);\n maskImageData({\n data: imageData.data,\n data_bbox: canvas_bbox,\n data_height: height,\n data_srs: canvas_srs,\n data_width: width,\n debug,\n geomask,\n mask,\n mask_srs,\n reproject,\n strategy\n });\n if (debug) console.log(\"[geocanvas] image data after masking:\", imageData);\n context.putImageData(imageData, 0, 0);\n if (debug) console.log(\"[geocanvas] put image data back\");\n return canvas;\n}\n\nmodule.exports = { maskImageData, maskCanvas };\n","const geomask = require(\"geomask\");\nconst core = require(\"./core.js\");\n\nfunction maskImageData(options) {\n return core.maskImageData({ ...options, edition: \"full\", geomask });\n}\n\nfunction maskCanvas(options) {\n return core.maskCanvas({ ...options, edition: \"full\", geomask });\n}\n\nconst geocanvas = { maskImageData, maskCanvas };\n\nif (typeof define === \"function\" && define.amd)\n define(function () {\n return geocanvas;\n });\nif (typeof module === \"object\") module.exports = geocanvas;\nif (typeof self === \"object\") self.geocanvas = geocanvas;\nif (typeof window === \"object\") window.geocanvas = geocanvas;\n","const lite = require(\"./lite.js\");\nconst reprojectGeoJSON = require(\"reproject-geojson\");\n\nfunction calcMask({\n debug = false,\n fname,\n raster_bbox,\n raster_srs,\n raster_height,\n raster_width,\n pixel_height,\n pixel_width,\n mask,\n mask_srs\n}) {\n if (raster_srs !== mask_srs) {\n mask = reprojectGeoJSON(mask, { from: mask_srs, to: raster_srs });\n }\n\n return lite[fname]({\n debug,\n raster_bbox,\n raster_height,\n raster_width,\n pixel_height,\n pixel_width,\n mask\n });\n}\n\nfunction inside(options) {\n return calcMask({ ...options, fname: \"inside\" });\n}\n\nfunction outside(options) {\n return calcMask({ ...options, fname: \"outside\" });\n}\n\nconst geomask = { inside, outside };\n\nif (typeof module === \"object\") module.exports = geomask;\n","const dufour_peyton_intersection = require(\"dufour-peyton-intersection\");\nconst subtract = require(\"preciso/subtract.js\");\nconst divide = require(\"preciso/divide.js\");\nconst reprojectGeoJSON = require(\"reproject-geojson/pluggable.js\");\nconst segflip = require(\"segflip\");\n\nfunction checkRows({ rows }) {\n rows.forEach((segs, irow) => {\n if (segs) {\n segs.forEach(([start, end], iseg) => {\n if (start > end) {\n throw Error(`uh oh: invalid segment at row ${irow}, segment ${iseg}`);\n }\n });\n }\n });\n}\n\nfunction inside({\n debug = false,\n raster_bbox,\n raster_height,\n raster_width,\n pixel_height,\n pixel_width,\n mask,\n reproject\n}) {\n if (typeof reproject === \"function\") {\n // reproject geometry to the srs of the raster\n mask = reprojectGeoJSON(mask, { in_place: false, reproject });\n }\n\n if (pixel_height === undefined)\n pixel_height = Number(\n divide(subtract(raster_bbox[3].toString(), raster_bbox[1].toString()), raster_height.toString())\n );\n if (pixel_width === undefined)\n pixel_width = Number(\n divide(subtract(raster_bbox[2].toString(), raster_bbox[0].toString()), raster_width.toString())\n );\n\n const { rows } = dufour_peyton_intersection.calculate({\n raster_bbox,\n raster_height,\n raster_width,\n pixel_height,\n pixel_width,\n geometry: mask\n });\n\n if (debug) checkRows({ rows });\n\n return { rows };\n}\n\nfunction outside({\n debug = false,\n raster_bbox,\n raster_height,\n raster_width,\n pixel_height,\n pixel_width,\n mask,\n reproject\n}) {\n if (typeof reproject === \"function\") {\n // reproject geometry to the srs of the raster\n mask = reprojectGeoJSON(mask, { in_place: false, reproject });\n }\n\n if (pixel_height === undefined)\n pixel_height = Number(\n divide(subtract(raster_bbox[3].toString(), raster_bbox[1].toString()), raster_height.toString())\n );\n if (pixel_width === undefined)\n pixel_width = Number(\n divide(subtract(raster_bbox[2].toString(), raster_bbox[0].toString()), raster_width.toString())\n );\n\n // calculate inside segments\n const { rows: insides } = inside({\n debug,\n raster_bbox,\n raster_height,\n raster_width,\n pixel_height,\n pixel_width,\n mask\n });\n\n if (debug) checkRows({ rows: insides });\n\n const last_column_index = raster_width - 1;\n\n // consider optimizing memory and speed\n // by just returning a reference to a whole row\n // instead of generating a new array every time\n // const whole_row = [0, last_column_index];\n\n const outsides = [];\n // using for loop instead of map because\n // map skips empty insides/rows\n for (let i = 0; i < insides.length; i++) {\n const segs = insides[i];\n if (!Array.isArray(segs) || segs.length === 0) {\n outsides.push([[0, last_column_index]]);\n } else {\n outsides.push(\n segflip({\n segments: segs,\n min: 0,\n max: last_column_index,\n debug: false\n })\n );\n }\n }\n\n if (debug) checkRows({ rows: outsides });\n\n return { rows: outsides };\n}\n\nconst geomask = { inside, outside };\n\nif (typeof module === \"object\") module.exports = geomask;\n","const clean = require(\"./clean.js\");\nmodule.exports = function absolute(n) {\n n = clean(n);\n if (n[0] === \"-\") return n.substring(1);\n else return n;\n};\n","const compare_positive = require(\"./compare_positive.js\");\nconst clean = require(\"./clean.js\");\nconst long_addition = require(\"./long_addition.js\");\nconst long_subtraction = require(\"./long_subtraction.js\");\n\nmodule.exports = function add(a, b) {\n a = clean(a);\n b = clean(b);\n\n const apos = a[0] !== \"-\";\n const bpos = b[0] !== \"-\";\n\n if (apos && bpos) {\n return long_addition(a, b);\n } else if (!apos && !bpos) {\n return \"-\" + long_addition(a.substring(1), b.substring(1));\n } else if (!apos && bpos) {\n a = a.substring(1);\n switch (compare_positive(a, b)) {\n case \"=\":\n return \"0\";\n case \"<\":\n return long_subtraction(b, a);\n case \">\":\n return \"-\" + long_subtraction(a, b);\n }\n } else if (apos && !bpos) {\n b = b.substring(1);\n switch (compare_positive(a, b)) {\n case \"=\":\n return \"0\";\n case \"<\":\n return \"-\" + long_subtraction(b, a);\n case \">\":\n return long_subtraction(a, b);\n }\n }\n};\n","const expand = require(\"./expand.js\");\n\nmodule.exports = function clean(n) {\n // remove + from beginning\n if (n[0] === \"+\") n = n.substring(1);\n\n n = expand(n);\n\n // remove extra zero in front\n // 03938.123 => 3938.123\n n = n.replace(/^0+(?=\\d)/, \"\");\n\n // remove extra zero at end\n\n return n;\n};\n","const clean = require(\"./clean.js\");\n\n// given:\n// - a and b are positive numbers\n// - a and b have been cleaned (i.e. no + or leading zeros)\nmodule.exports = function compare_positive(a, b) {\n const alen = a.length;\n const blen = b.length;\n\n const aidx = a.indexOf(\".\");\n const bidx = b.indexOf(\".\");\n\n // basically where would the dot be\n // if we add a dot at the end of integers\n // like 123.\n const a_adjusted_dot_index = aidx === -1 ? alen : aidx;\n const b_adjusted_dot_index = bidx === -1 ? blen : bidx;\n\n // how much you need to shift the second number\n // to line up the decimal with the first\n // 0.12345\n // 12345.0\n\n const offset = a_adjusted_dot_index - b_adjusted_dot_index;\n\n let left = Math.max(a_adjusted_dot_index, b_adjusted_dot_index);\n\n let right = Math.max(alen - a_adjusted_dot_index, blen - b_adjusted_dot_index);\n\n let aoffset = offset < 0 ? -1 * offset : 0;\n let boffset = offset <= 0 ? 0 : offset;\n\n let imax = left + 1 + right - 1; // -1 for zero-index\n\n let i = 0;\n while (i < imax) {\n const achar = a[i - aoffset] || \"0\";\n const bchar = b[i - boffset] || \"0\";\n if (achar !== bchar) {\n if (achar > bchar) return \">\";\n else if (achar < bchar) return \"<\";\n }\n i++;\n }\n\n return \"=\";\n};\n","const absolute = require(\"./absolute.js\");\nconst clean = require(\"./clean.js\");\nconst long_division = require(\"./long_division.js\");\n\nmodule.exports = function (dividend, divisor, options) {\n dividend = clean(dividend);\n divisor = clean(divisor);\n\n const dividend_is_positive = dividend[0] !== \"-\";\n const divisor_is_positive = divisor[0] !== \"-\";\n\n const out_sign = dividend_is_positive !== divisor_is_positive ? \"-\" : \"\";\n\n if (!dividend_is_positive) dividend = absolute(dividend);\n if (!divisor_is_positive) divisor = absolute(divisor);\n\n return out_sign + long_division(dividend, divisor, options);\n};\n","// convert exponential notation to normal string\n// not optimized yet and no support for big numbers\nmodule.exports = function expand(n) {\n // remove + from beginning\n if (n[0] === \"+\") n = n.substring(1);\n\n const sign = n[0] === \"-\" ? \"-\" : \"\";\n if (sign === \"-\") n = n.substring(1);\n\n const index_of_e = n.indexOf(\"e\");\n\n // number not in exponential notation\n if (index_of_e === -1) return sign + n;\n\n let index_of_dot = n.indexOf(\".\");\n\n // if number doesn't include a period dot\n // then just assume it at the end\n // such that 3e4 has index of dot at 1\n if (index_of_dot === -1) index_of_dot = index_of_e;\n\n const shift = Number(n.substring(index_of_e + 1));\n\n // remove old decimal place\n const base = n.substring(0, index_of_e).replace(\".\", \"\");\n\n // normalize shift to start of the string at index zero\n const normshift = index_of_dot + shift;\n\n const baselen = base.length;\n\n if (normshift >= baselen) {\n const zct = normshift - baselen;\n let result = base;\n for (let i = 0; i < zct; i++) result += \"0\";\n return sign + result;\n } else if (normshift < 0) {\n // need to add zeros in decimal places\n result = \"0.\";\n for (let i = 0; i > normshift; i--) result += \"0\";\n result += base;\n return sign + result;\n } else {\n // shifting within the base\n return sign + base.substring(0, normshift) + \".\" + base.substring(normshift);\n }\n};\n","// assumes both numbers are positive integers\nmodule.exports = function long_addition(a, b) {\n // assuming both positive for now\n\n const alen = a.length;\n const blen = b.length;\n\n const aidx = a.indexOf(\".\");\n const bidx = b.indexOf(\".\");\n\n // basically where would the dot be\n // if we add a dot at the end of integers\n // like 123.\n const a_adjusted_dot_index = aidx === -1 ? alen : aidx;\n const b_adjusted_dot_index = bidx === -1 ? blen : bidx;\n\n // how much you need to shift the second number\n // to line up the decimal with the first\n // 0.12345\n // 12345.0\n\n const offset = a_adjusted_dot_index - b_adjusted_dot_index;\n\n let left = Math.max(a_adjusted_dot_index, b_adjusted_dot_index);\n\n let right = Math.max(alen - a_adjusted_dot_index - 1, blen - b_adjusted_dot_index - 1);\n\n let aoffset = offset < 0 ? -1 * offset : 0;\n let boffset = offset <= 0 ? 0 : offset;\n\n let imax = left + 1 + right - 1; // -1 for zero-index\n\n let result = \"\";\n\n let carried = 0;\n\n // to the right of the period\n // 0.12345\n // 12345.0\n let i = imax;\n if (right > 0) {\n while (i > imax - right) {\n const achar = a[i - aoffset] || \"0\";\n const bchar = b[i - boffset] || \"0\";\n let n = Number(achar) + Number(bchar) + carried;\n if (n >= 10) {\n n -= 10;\n carried = 1;\n } else {\n carried = 0;\n }\n if (result !== \"\" || n !== 0) {\n result = n + result;\n }\n i--;\n }\n if (result) result = \".\" + result;\n i--; // substract 1 for dot\n }\n\n if (left > 0) {\n while (i >= 0) {\n const achar = a[i - aoffset] || \"0\";\n const bchar = b[i - boffset] || \"0\";\n let n = Number(achar) + Number(bchar) + carried;\n if (n >= 10) {\n n -= 10;\n carried = 1;\n } else {\n carried = 0;\n }\n result = n + result;\n i--;\n }\n }\n\n if (carried === 1) {\n result = carried + result;\n }\n\n return result;\n};\n","const compare_positive = require(\"./compare_positive.js\");\nconst add = require(\"./add.js\");\nconst multiply = require(\"./multiply.js\");\nconst subtract = require(\"./subtract.js\");\nconst round_last_decimal = require(\"./round_last_decimal.js\");\n\n// given dividend and divisor are positive numberical strings\nmodule.exports = function long_division(dividend, divisor, { max_decimal_digits = 100, ellipsis = false } = {}) {\n // remove unnecessary starting zeros\n // ex: 0.5 => .5\n if (dividend[0] === \"0\") dividend = dividend.substring(1);\n if (divisor[0] === \"0\") divisor = divisor.substring(1);\n\n const dividend_index_of_dot = dividend.indexOf(\".\");\n const divisor_index_of_dot = divisor.indexOf(\".\");\n\n const adjusted_dividend_index_of_dot = dividend_index_of_dot === -1 ? dividend.length : dividend_index_of_dot;\n const divisor_num_decimal_places = divisor_index_of_dot === -1 ? 0 : divisor.length - 1 - divisor_index_of_dot;\n\n // whether the result has a repeating decimal\n // e.g. 1/3 is repeating as in \"0.333...\"\n let repeating = false;\n\n // remove decimals\n dividend = dividend.replace(/\\./, \"\");\n divisor = divisor.replace(/\\./, \"\");\n\n const dividend_length = dividend.length;\n\n let current = \"\";\n let quotient = \"\";\n let comparison;\n let offset = -1 * divisor_num_decimal_places;\n let skip = 0;\n for (let i = 0; i < dividend_length; i++) {\n const char = dividend[i];\n\n current += char;\n\n comparison = compare_positive(current, divisor);\n\n if (comparison === \">\") {\n // same as const times = Math.floor(current / divisor);\n // but without floating point problems\n let times = 1;\n let product = add(divisor, divisor);\n let passed_product = divisor;\n while (compare_positive(product, current) !== \">\") {\n times++;\n passed_product = product;\n product = add(product, divisor);\n }\n times = times.toString();\n\n if (quotient !== \"\") {\n for (let i = times.length; i <= skip; i++) quotient += \"0\";\n }\n quotient += times; // string concatentation\n\n current = subtract(current, passed_product);\n\n skip = 0;\n } else if (comparison === \"<\") {\n if (quotient === \"\") {\n offset++;\n }\n skip++;\n\n // outside greater than inside\n continue;\n } else if (comparison === \"=\") {\n if (quotient !== \"\") {\n for (let i = 0; i < skip; i++) quotient += \"0\";\n }\n quotient += \"1\";\n current = \"0\";\n skip = 0;\n }\n }\n\n if (current.match(/^0+$/g)) {\n if (comparison === \"<\") {\n quotient += current.substring(0, current.length - 1);\n }\n } else {\n const previous = {};\n\n // keep dividing until we have an answer\n // figure out current place of decimal number\n const idot = adjusted_dividend_index_of_dot - offset;\n const qlen = quotient.length;\n // add 1 extra for rounding purposes\n const imax = idot - qlen + max_decimal_digits + 1;\n\n // reset skip if just \"\" so far because don't want to count 0 in 0.\n if (quotient === \"\") {\n skip = 0;\n }\n\n for (let i = 0; i < imax; i++) {\n current += \"0\";\n if (ellipsis) {\n if (current in previous) {\n previous[current]++;\n if (previous[current] > 3) {\n quotient += \"...\";\n repeating = true;\n break;\n }\n } else {\n previous[current] = 1;\n }\n }\n const comparison = compare_positive(current, divisor);\n\n if (comparison === \">\") {\n // inside greater than outside\n\n // how many times the divisor goes into the current\n let times = 1;\n let product = add(divisor, divisor);\n let passed_product = divisor;\n while (compare_positive(product, current) !== \">\") {\n times++;\n passed_product = product;\n product = add(product, divisor);\n }\n\n times = times.toString();\n\n // pad left zeros\n for (let i = times.length; i <= skip; i++) quotient += \"0\";\n quotient += times; // string concatentation\n current = subtract(current, passed_product);\n\n if (current === \"0\") {\n break;\n }\n\n skip = 0;\n } else if (comparison === \"<\") {\n // outside greater than inside\n skip++;\n continue;\n } else if (comparison === \"=\") {\n // fill in previous with zeros\n for (let i = 0; i < skip; i++) quotient += \"0\";\n quotient += \"1\";\n skip = 0;\n break;\n }\n }\n }\n\n // reinsert decimal place\n\n const idot = adjusted_dividend_index_of_dot - offset;\n const qlen = quotient.length;\n\n let num_decimals;\n\n if (idot === qlen) {\n // integer number so don't do anything\n num_decimals = 0;\n } else if (idot < 0) {\n quotient = \"0.\" + \"0\".repeat(Math.abs(idot)) + quotient;\n num_decimals = qlen - idot; // idot is negative, so adding\n } else if (idot > qlen) {\n // add more zeros to integer\n for (let i = qlen; i < idot; i++) quotient += \"0\";\n num_decimals = 0;\n } else if (idot < qlen) {\n quotient = quotient.substring(0, idot) + \".\" + quotient.substring(idot);\n num_decimals = qlen - idot;\n } else if (idot === 0) {\n quotient = \"0.\" + quotient;\n num_decimals = qlen;\n }\n\n // remove zeros from front\n // 03938.123 => 3938.123\n quotient = quotient.replace(/^0+/, \"\");\n\n // remove extra zeros from the end\n quotient = quotient.replace(/\\.\\d+0+$/, \"\");\n\n // round if necessary\n if (!repeating) {\n const extra_decimals = num_decimals - max_decimal_digits;\n if (extra_decimals > 0) {\n quotient = round_last_decimal(quotient.substring(0, quotient.length - extra_decimals + 1));\n }\n }\n\n if (quotient[0] === \".\") quotient = \"0\" + quotient;\n\n return quotient;\n};\n","const CHUNK_SIZE = 15;\n\n/**\n *\n * @param {String} a - numerical string larger or equal to b\n * @param {String} b - numerical string smaller or equal to a\n * @returns {String} product - result of multiplying a with b\n */\n\nmodule.exports = function long_multiplication(a, b) {\n if (a === \"0\" || b === \"0\") return \"0\";\n\n const top_index_of_dot = a.indexOf(\".\");\n const bottom_index_of_dot = b.indexOf(\".\");\n\n const a_num_decimal_places = top_index_of_dot === -1 ? 0 : a.length - 1 - top_index_of_dot;\n const b_num_decimal_places = bottom_index_of_dot === -1 ? 0 : b.length - 1 - bottom_index_of_dot;\n\n const out_num_decimal_places = a_num_decimal_places + b_num_decimal_places;\n\n // remove decimals\n a = a.replace(\".\", \"\");\n b = b.replace(\".\", \"\");\n\n const alen = a.length;\n const blen = b.length;\n\n const chunks = [];\n let i = alen;\n while (i >= 0) {\n const end = i;\n const start = (i -= CHUNK_SIZE);\n const str = a.substring(start, end);\n chunks.push([Number(str), str.length]);\n }\n\n const partial_products = [];\n const partials = [];\n\n // for each number in multiplier\n for (let i = 0, ireverse = blen - 1; ireverse >= 0; ireverse--, i++) {\n const bstr = b[ireverse];\n\n const bnum = Number(bstr);\n\n let carried = 0;\n let partial = \"\";\n const ichunklast = chunks.length - 1;\n chunks.forEach(([chunk, chunklen], c) => {\n const subpartial = carried + bnum * chunk;\n let subpartstr = subpartial.toString();\n const subpartcharlen = subpartstr.length;\n if (subpartcharlen > chunklen && c !== ichunklast) {\n const islice = -1 * chunklen;\n partial = subpartstr.slice(islice) + partial;\n carried = Number(subpartstr.slice(0, islice));\n } else {\n const imax = chunklen - subpartcharlen;\n for (let i = 0; i < imax; i++) {\n subpartstr = \"0\" + subpartstr;\n }\n carried = 0;\n partial = subpartstr + partial;\n }\n });\n\n // add number of zeros at end\n partial += \"0\".repeat(i);\n\n partial_products.push(partial);\n\n partials.push([Array.from(partial).map(char => Number(char)), partial.length]);\n }\n\n // back to front, iterate through columns\n // and add partial products together\n const num_partials = partial_products.length;\n\n const number_of_columns = partials[partials.length - 1][1] + num_partials;\n\n let result = \"\";\n let carried = 0;\n for (let icol = 0; icol < number_of_columns; icol++) {\n let sum = carried;\n const pmax = Math.min(icol, num_partials - 1);\n for (let p = 0; p <= pmax; p++) {\n const [pnums, plen] = partials[p];\n const i = plen - 1 - icol;\n if (i >= 0) {\n sum += pnums[i];\n }\n }\n\n if (sum >= 10) {\n sum = sum.toString();\n result = sum[sum.length - 1] + result;\n carried = Number(sum.slice(0, -1));\n } else {\n result = sum + result;\n carried = 0;\n }\n }\n\n // add decimal back in\n if (out_num_decimal_places === 0) {\n // integer\n // remove extra zeros\n result = result.replace(/^0+/, \"\");\n } else {\n // decimal number\n const idot = result.length - out_num_decimal_places;\n\n result = result.substring(0, idot) + \".\" + result.substring(idot);\n\n // remove zeros from front\n result = result.replace(/^0+/, \"\");\n\n // remove extra zeros from the end\n result = result.replace(/\\.?0+$/, \"\");\n\n if (result[0] === \".\") result = \"0\" + result;\n }\n\n return result;\n};\n","// const lookup = {};\n// const vals = [undefined, 0, 1, 2, 3, 4, 5, 6, 8, 9];\n// vals.forEach(top => {\n// lookup[top] = {};\n// vals.forEach(bottom => {\n// lookup[top][bottom] = (top || 0) - (bottom || 0);\n// })\n// });\n\n// assumes (1) both a and b are positive numbers\n// and (2) a is larger than b\nmodule.exports = function long_subtraction(a, b) {\n const alen = a.length;\n const blen = b.length;\n\n const aidx = a.indexOf(\".\");\n const bidx = b.indexOf(\".\");\n\n // basically where would the dot be\n // if we add a dot at the end of integers\n // like 123.\n const a_adjusted_dot_index = aidx === -1 ? alen : aidx;\n const b_adjusted_dot_index = bidx === -1 ? blen : bidx;\n // console.log({a_adjusted_dot_index, b_adjusted_dot_index});\n\n // how much you need to shift the second number\n // to line up the decimal with the first\n // 0.12345\n // 12345.0\n\n const offset = a_adjusted_dot_index - b_adjusted_dot_index;\n // console.log(\"offset:\", offset);\n\n let left = Math.max(a_adjusted_dot_index, b_adjusted_dot_index);\n // console.log(\"left:\", left);\n\n let right = Math.max(alen - a_adjusted_dot_index - 1, blen - b_adjusted_dot_index - 1);\n // console.log(\"right:\", right);\n\n let aoffset = offset < 0 ? -1 * offset : 0;\n let boffset = offset <= 0 ? 0 : offset;\n // console.log({aoffset, boffset});\n\n let imax = left + 1 + right - 1; // -1 for zero-index\n // console.log({imax});\n\n let result = \"\";\n\n // number of borrowings\n let borrowed = 0;\n\n // to the right of the period\n // 100.5 6 7\n // 2.2 9 3\n // (-3 + 10) 4\n let i = imax;\n if (right > 0) {\n while (i > imax - right) {\n // console.log(\"\\n\\n\", {i});\n let top = a[i - aoffset] || \"0\";\n let bottom = b[i - boffset] || \"0\";\n\n // console.log(\"pre borrowing\", {top, bottom});\n top -= borrowed;\n borrowed = 0;\n\n // console.log(\"after borrowing\", {top, bottom});\n let n = top - bottom;\n\n // console.log({n});\n if (n < 0) {\n while (n < 0) {\n borrowed++;\n n += 10;\n }\n } else if (borrowed) {\n borrowed--;\n }\n // console.log({n});\n if (result !== \"\" || n !== 0) {\n result = n + result;\n }\n i--;\n }\n if (result !== \"\") {\n result = \".\" + result;\n }\n i--; // substract 1 for dot\n }\n\n // console.log({result});\n\n if (left > 0) {\n while (i > 0) {\n // console.log(\"\\n\\n\", {i});\n let top = a[i - aoffset] || \"0\";\n let bottom = b[i - boffset] || \"0\";\n\n // console.log(\"pre borrowing\", {top, bottom});\n top -= borrowed;\n borrowed = 0;\n\n // console.log(\"after borrowing\", {top, bottom});\n let n = top - bottom;\n\n // console.log({n});\n if (n < 0) {\n while (n < 0) {\n borrowed++;\n n += 10;\n }\n } else if (borrowed) {\n borrowed--;\n }\n // console.log({n});\n result = n + result;\n i--;\n }\n\n // console.log({borrowed});\n // special rule for last one\n const achar = a[0 - aoffset] || \"0\";\n const bchar = b[0 - boffset] || \"0\";\n let n = Number(achar) - (borrowed > 0 ? 1 : 0) - Number(bchar);\n if (n !== 0) {\n result = n + result;\n }\n\n // remove any zeros in front like in 0123\n result = result.replace(/^0+/, \"\");\n }\n\n // if decimal number add zero\n if (result[0] === \".\") result = \"0\" + result;\n\n return result;\n};\n","const absolute = require(\"./absolute.js\");\nconst clean = require(\"./clean.js\");\nconst compare_positive = require(\"./compare_positive.js\");\nconst long_multiplication = require(\"./long_multiplication.js\");\n\nmodule.exports = function multiply(a, b) {\n a = clean(a);\n b = clean(b);\n\n const apos = a[0] !== \"-\";\n const bpos = b[0] !== \"-\";\n\n const out_sign = apos !== bpos ? \"-\" : \"\";\n\n a = absolute(a);\n b = absolute(b);\n\n const comparison = compare_positive(a, b);\n\n if (comparison === \"<\") {\n const aold = a;\n const bold = b;\n a = bold;\n b = aold;\n }\n\n return out_sign + long_multiplication(a, b);\n};\n","// given n is a decimal number\nconst up = [\"5\", \"6\", \"7\", \"8\", \"9\"];\nmodule.exports = function round_last_decimal(n) {\n // remove + from beginning\n if (n[0] === \"+\") n = n.substring(1);\n\n //console.log(\"rounding:\", {n});\n const len = n.length;\n //console.log({len});\n let result = \"\";\n\n const last_char = n[n.length - 1];\n //console.log({last_char});\n\n if (up.includes(last_char)) {\n let i;\n for (i = len - 2; i >= 0; i--) {\n const char = n[i];\n //console.log({char});\n // skip over . or -\n if (char === \".\" || char === \"-\") continue;\n\n const nchar = Number(char) + 1;\n //console.log({nchar});\n\n if (nchar === 10) {\n result = \"0\" + result;\n // keep rounding up\n } else {\n result = nchar + result;\n break;\n }\n }\n //console.log({i});\n if (i > 0) result = n.substring(0, i) + result;\n } else {\n result = n.substring(0, len - 1);\n }\n\n if (result[result.length - 1] === \".\") result = result.substring(0, result.length - 1);\n\n // remove trailing zeros in decimal number\n // 0.50 => 0.5\n if (result.indexOf(\".\") > -1) result = result.replace(/0+$/, \"\");\n\n return result;\n};\n","const clean = require(\"./clean\");\nconst compare_positive = require(\"./compare_positive.js\");\nconst long_addition = require(\"./long_addition.js\");\nconst long_subtraction = require(\"./long_subtraction.js\");\n\nmodule.exports = function subtract(a, b) {\n a = clean(a);\n b = clean(b);\n\n const a_is_positive = a[0] !== \"-\";\n const b_is_positive = b[0] !== \"-\";\n if (a_is_positive) {\n if (b_is_positive) {\n const comparison = compare_positive(a, b);\n if (comparison === \">\") {\n return long_subtraction(a, b);\n } else if (comparison === \"<\") {\n return \"-\" + long_subtraction(b, a);\n } else {\n return \"0\";\n }\n } else {\n return long_addition(a, b.substring(1));\n }\n } else if (b_is_positive) {\n return \"-\" + long_addition(a.substring(1), b);\n } else {\n a = a.substring(1);\n b = b.substring(1);\n const comparison = compare_positive(a, b);\n if (comparison === \">\") {\n return \"-\" + long_subtraction(a, b);\n } else if (comparison === \"<\") {\n return long_subtraction(b, a);\n } else {\n return \"0\";\n }\n }\n};\n","let proj4 = require(\"proj4\");\nconst defs = require(\"proj4js-definitions\");\n\nif (typeof proj4 === \"object\" && typeof proj4.defs !== \"function\" && typeof proj4.default === \"function\") {\n // probably inside an Angular project\n proj4 = proj4.default;\n}\n\nproj4.defs(defs);\n\nmodule.exports = proj4;\n","const clone = data => JSON.parse(JSON.stringify(data));\n\nfunction reprojectGeoJSONPluggable(data, { in_place = false, reproject }) {\n if (typeof reproject !== \"function\") {\n throw new Error(`[reproject-geojson] you must specify a reproject function`);\n }\n if (in_place !== true) data = clone(data);\n\n if (data.type === \"FeatureCollection\") {\n data.features = data.features.map(feature => reprojectGeoJSONPluggable(feature, { in_place, reproject }));\n } else if (data.type === \"Feature\") {\n data.geometry = reprojectGeoJSONPluggable(data.geometry, { in_place, reproject });\n } else if (data.type === \"LineString\") {\n data.coordinates = data.coordinates.map(coord => reproject(coord));\n } else if (data.type === \"MultiLineString\") {\n data.coordinates = data.coordinates.map(line => line.map(coord => reproject(coord)));\n } else if (data.type === \"MultiPoint\") {\n data.coordinates = data.coordinates.map(point => reproject(point));\n } else if (data.type === \"MultiPolygon\") {\n data.coordinates = data.coordinates.map(polygon => {\n return polygon.map(ring => ring.map(coord => reproject(coord)));\n });\n } else if (data.type === \"Point\") {\n data.coordinates = reproject(data.coordinates);\n } else if (data.type === \"Polygon\") {\n data.coordinates = data.coordinates.map(ring => ring.map(coord => reproject(coord)));\n }\n return data;\n}\n\nif (typeof define === \"function\" && define.amd)\n define(function () {\n return reprojectGeoJSONPluggable;\n });\nif (typeof module === \"object\") module.exports = reprojectGeoJSONPluggable;\nif (typeof window === \"object\") window.reprojectGeoJSONPluggable = reprojectGeoJSONPluggable;\nif (typeof self === \"object\") self.reprojectGeoJSONPluggable = reprojectGeoJSONPluggable;\n","const proj4 = require(\"proj4-fully-loaded\");\nconst reprojectGeoJSONPluggable = require(\"./pluggable.js\");\n\nfunction reprojectGeoJSON(data, { from: _from = \"EPSG:4326\", in_place = false, to: _to = \"EPSG:4326\" }) {\n if (typeof _from === \"number\" || _from.match(/^\\d+$/)) _from = \"EPSG:\" + _from;\n if (typeof _to === \"number\" || _to.match(/^\\d+$/)) _to = \"EPSG:\" + _to;\n return reprojectGeoJSONPluggable(data, {\n in_place,\n reproject: proj4(_from, _to).forward\n });\n}\n\nif (typeof define === \"function\" && define.amd)\n define(function () {\n return reprojectGeoJSON;\n });\nif (typeof module === \"object\") module.exports = reprojectGeoJSON;\nif (typeof window === \"object\") window.reprojectGeoJSON = reprojectGeoJSON;\nif (typeof self === \"object\") self.reprojectGeoJSON = reprojectGeoJSON;\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; };\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n defineProperty(generator, \"_invoke\", { value: makeInvokeMethod(innerFn, self, context) });\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n defineProperty(Gp, \"constructor\", { value: GeneratorFunctionPrototype, configurable: true });\n defineProperty(\n GeneratorFunctionPrototype,\n \"constructor\",\n { value: GeneratorFunction, configurable: true }\n );\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n defineProperty(this, \"_invoke\", { value: enqueue });\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method;\n var method = delegate.iterator[methodName];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method, or a missing .next mehtod, always terminate the\n // yield* loop.\n context.delegate = null;\n\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (methodName === \"throw\" && delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n if (methodName !== \"return\") {\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a '\" + methodName + \"' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(val) {\n var object = Object(val);\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):\"object\"==typeof exports?exports.GeoRaster=e():t.GeoRaster=e()}(\"undefined\"!=typeof self?self:this,(function(){return function(t){var e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=t,r.c=e,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&\"object\"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:t}),2&e&&\"string\"!=typeof t)for(var i in t)r.d(n,i,function(e){return t[e]}.bind(null,i));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,\"a\",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p=\"\",r(r.s=107)}([function(t,e,r){\"use strict\";const n=r(73);t.exports=function(t){return\"+\"===t[0]&&(t=t.substring(1)),(t=(t=n(t)).replace(/^0+(?=\\d)/,\"\")).includes(\".\")&&(t=t.replace(/\\.?0+$/,\"\")),\"\"===t&&(t=\"0\"),\"-0\"===t&&(t=\"0\"),t}},function(t,e,r){\"use strict\";const n=r(4),i=r(0),o=r(15),s=r(32);function a(t,e,r){t=i(t),e=i(e);const a=\"-\"!==t[0],u=\"-\"!==e[0],c=o(t),l=o(e);if(c||l)return a==u?\"Infinity\":\"-Infinity\";if(\"0\"===e)throw new Error(\"[preciso] division by zero\");if(\"\"===t||\"0\"===t)return\"0\";const f=a!==u?\"-\":\"\";return a||(t=n(t)),u||(e=n(e)),f+s(t,e,r)}t.exports=a,t.exports.default=a},function(t,e,r){\"use strict\";r.d(e,\"a\",(function(){return n})),r.d(e,\"b\",(function(){return i})),r.d(e,\"c\",(function(){return o})),r.d(e,\"d\",(function(){return s})),r.d(e,\"e\",(function(){return a}));const n=Symbol(\"thread.errors\"),i=Symbol(\"thread.events\"),o=Symbol(\"thread.terminate\"),s=Symbol(\"thread.transferable\"),a=Symbol(\"thread.worker\")},function(t,e){var r;r=function(){return this}();try{r=r||new Function(\"return this\")()}catch(t){\"object\"==typeof window&&(r=window)}t.exports=r},function(t,e,r){\"use strict\";const n=r(0);function i(t){return\"-\"===(t=n(t))[0]?t.substring(1):t}t.exports=i,t.exports.default=i},function(t,e,r){\"use strict\";function n(t,e){const r=t.length,n=e.length,i=t.indexOf(\".\"),o=e.indexOf(\".\"),s=-1===i?r:i,a=-1===o?n:o,u=s-a;let c=u<0?-1*u:0,l=u<=0?0:u,f=Math.max(s,a)+1+Math.max(r-s,n-a)-1,h=0;for(;ho)return\">\";if(n\":return\"-\"+s(t,e)}else if(u&&!c)switch(e=e.substring(1),n(t,e)){case\"=\":return\"0\";case\"<\":return\"-\"+s(e,t);case\">\":return s(t,e)}}t.exports=u,t.exports.default=u},function(t,e,r){\"use strict\";(function(t){\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\nvar n=r(108),i=r(109),o=r(60);function s(){return u.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function a(t,e){if(s()=s())throw new RangeError(\"Attempt to allocate Buffer larger than maximum size: 0x\"+s().toString(16)+\" bytes\");return 0|t}function p(t,e){if(u.isBuffer(t))return t.length;if(\"undefined\"!=typeof ArrayBuffer&&\"function\"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;\"string\"!=typeof t&&(t=\"\"+t);var r=t.length;if(0===r)return 0;for(var n=!1;;)switch(e){case\"ascii\":case\"latin1\":case\"binary\":return r;case\"utf8\":case\"utf-8\":case void 0:return B(t).length;case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return 2*r;case\"hex\":return r>>>1;case\"base64\":return G(t).length;default:if(n)return B(t).length;e=(\"\"+e).toLowerCase(),n=!0}}function y(t,e,r){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return\"\";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return\"\";if((r>>>=0)<=(e>>>=0))return\"\";for(t||(t=\"utf8\");;)switch(t){case\"hex\":return C(this,e,r);case\"utf8\":case\"utf-8\":return k(this,e,r);case\"ascii\":return T(this,e,r);case\"latin1\":case\"binary\":return O(this,e,r);case\"base64\":return E(this,e,r);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return P(this,e,r);default:if(n)throw new TypeError(\"Unknown encoding: \"+t);t=(t+\"\").toLowerCase(),n=!0}}function g(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function m(t,e,r,n,i){if(0===t.length)return-1;if(\"string\"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}if(\"string\"==typeof e&&(e=u.from(e,n)),u.isBuffer(e))return 0===e.length?-1:b(t,e,r,n,i);if(\"number\"==typeof e)return e&=255,u.TYPED_ARRAY_SUPPORT&&\"function\"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):b(t,[e],r,n,i);throw new TypeError(\"val must be string, number or Buffer\")}function b(t,e,r,n,i){var o,s=1,a=t.length,u=e.length;if(void 0!==n&&(\"ucs2\"===(n=String(n).toLowerCase())||\"ucs-2\"===n||\"utf16le\"===n||\"utf-16le\"===n)){if(t.length<2||e.length<2)return-1;s=2,a/=2,u/=2,r/=2}function c(t,e){return 1===s?t[e]:t.readUInt16BE(e*s)}if(i){var l=-1;for(o=r;oa&&(r=a-u),o=r;o>=0;o--){for(var f=!0,h=0;hi&&(n=i):n=i;var o=e.length;if(o%2!=0)throw new TypeError(\"Invalid hex string\");n>o/2&&(n=o/2);for(var s=0;s>8,i=r%256,o.push(i),o.push(n);return o}(e,t.length-r),t,r,n)}function E(t,e,r){return 0===e&&r===t.length?n.fromByteArray(t):n.fromByteArray(t.slice(e,r))}function k(t,e,r){r=Math.min(t.length,r);for(var n=[],i=e;i239?4:c>223?3:c>191?2:1;if(i+f<=r)switch(f){case 1:c<128&&(l=c);break;case 2:128==(192&(o=t[i+1]))&&(u=(31&c)<<6|63&o)>127&&(l=u);break;case 3:o=t[i+1],s=t[i+2],128==(192&o)&&128==(192&s)&&(u=(15&c)<<12|(63&o)<<6|63&s)>2047&&(u<55296||u>57343)&&(l=u);break;case 4:o=t[i+1],s=t[i+2],a=t[i+3],128==(192&o)&&128==(192&s)&&128==(192&a)&&(u=(15&c)<<18|(63&o)<<12|(63&s)<<6|63&a)>65535&&u<1114112&&(l=u)}null===l?(l=65533,f=1):l>65535&&(l-=65536,n.push(l>>>10&1023|55296),l=56320|1023&l),n.push(l),i+=f}return function(t){var e=t.length;if(e<=4096)return String.fromCharCode.apply(String,t);var r=\"\",n=0;for(;n0&&(t=this.toString(\"hex\",0,r).match(/.{2}/g).join(\" \"),this.length>r&&(t+=\" ... \")),\"\"},u.prototype.compare=function(t,e,r,n,i){if(!u.isBuffer(t))throw new TypeError(\"Argument must be a Buffer\");if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),e<0||r>t.length||n<0||i>this.length)throw new RangeError(\"out of range index\");if(n>=i&&e>=r)return 0;if(n>=i)return-1;if(e>=r)return 1;if(this===t)return 0;for(var o=(i>>>=0)-(n>>>=0),s=(r>>>=0)-(e>>>=0),a=Math.min(o,s),c=this.slice(n,i),l=t.slice(e,r),f=0;fi)&&(r=i),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError(\"Attempt to write outside buffer bounds\");n||(n=\"utf8\");for(var o=!1;;)switch(n){case\"hex\":return v(this,t,e,r);case\"utf8\":case\"utf-8\":return w(this,t,e,r);case\"ascii\":return x(this,t,e,r);case\"latin1\":case\"binary\":return _(this,t,e,r);case\"base64\":return S(this,t,e,r);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return A(this,t,e,r);default:if(o)throw new TypeError(\"Unknown encoding: \"+n);n=(\"\"+n).toLowerCase(),o=!0}},u.prototype.toJSON=function(){return{type:\"Buffer\",data:Array.prototype.slice.call(this._arr||this,0)}};function T(t,e,r){var n=\"\";r=Math.min(t.length,r);for(var i=e;in)&&(r=n);for(var i=\"\",o=e;or)throw new RangeError(\"Trying to access beyond buffer length\")}function R(t,e,r,n,i,o){if(!u.isBuffer(t))throw new TypeError('\"buffer\" argument must be a Buffer instance');if(e>i||et.length)throw new RangeError(\"Index out of range\")}function j(t,e,r,n){e<0&&(e=65535+e+1);for(var i=0,o=Math.min(t.length-r,2);i>>8*(n?i:1-i)}function M(t,e,r,n){e<0&&(e=4294967295+e+1);for(var i=0,o=Math.min(t.length-r,4);i>>8*(n?i:3-i)&255}function L(t,e,r,n,i,o){if(r+n>t.length)throw new RangeError(\"Index out of range\");if(r<0)throw new RangeError(\"Index out of range\")}function F(t,e,r,n,o){return o||L(t,0,r,4),i.write(t,e,r,n,23,4),r+4}function N(t,e,r,n,o){return o||L(t,0,r,8),i.write(t,e,r,n,52,8),r+8}u.prototype.slice=function(t,e){var r,n=this.length;if((t=~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),(e=void 0===e?n:~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),e0&&(i*=256);)n+=this[t+--e]*i;return n},u.prototype.readUInt8=function(t,e){return e||I(t,1,this.length),this[t]},u.prototype.readUInt16LE=function(t,e){return e||I(t,2,this.length),this[t]|this[t+1]<<8},u.prototype.readUInt16BE=function(t,e){return e||I(t,2,this.length),this[t]<<8|this[t+1]},u.prototype.readUInt32LE=function(t,e){return e||I(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},u.prototype.readUInt32BE=function(t,e){return e||I(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},u.prototype.readIntLE=function(t,e,r){t|=0,e|=0,r||I(t,e,this.length);for(var n=this[t],i=1,o=0;++o=(i*=128)&&(n-=Math.pow(2,8*e)),n},u.prototype.readIntBE=function(t,e,r){t|=0,e|=0,r||I(t,e,this.length);for(var n=e,i=1,o=this[t+--n];n>0&&(i*=256);)o+=this[t+--n]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*e)),o},u.prototype.readInt8=function(t,e){return e||I(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},u.prototype.readInt16LE=function(t,e){e||I(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},u.prototype.readInt16BE=function(t,e){e||I(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},u.prototype.readInt32LE=function(t,e){return e||I(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},u.prototype.readInt32BE=function(t,e){return e||I(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},u.prototype.readFloatLE=function(t,e){return e||I(t,4,this.length),i.read(this,t,!0,23,4)},u.prototype.readFloatBE=function(t,e){return e||I(t,4,this.length),i.read(this,t,!1,23,4)},u.prototype.readDoubleLE=function(t,e){return e||I(t,8,this.length),i.read(this,t,!0,52,8)},u.prototype.readDoubleBE=function(t,e){return e||I(t,8,this.length),i.read(this,t,!1,52,8)},u.prototype.writeUIntLE=function(t,e,r,n){(t=+t,e|=0,r|=0,n)||R(this,t,e,r,Math.pow(2,8*r)-1,0);var i=1,o=0;for(this[e]=255&t;++o=0&&(o*=256);)this[e+i]=t/o&255;return e+r},u.prototype.writeUInt8=function(t,e,r){return t=+t,e|=0,r||R(this,t,e,1,255,0),u.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=255&t,e+1},u.prototype.writeUInt16LE=function(t,e,r){return t=+t,e|=0,r||R(this,t,e,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):j(this,t,e,!0),e+2},u.prototype.writeUInt16BE=function(t,e,r){return t=+t,e|=0,r||R(this,t,e,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):j(this,t,e,!1),e+2},u.prototype.writeUInt32LE=function(t,e,r){return t=+t,e|=0,r||R(this,t,e,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t):M(this,t,e,!0),e+4},u.prototype.writeUInt32BE=function(t,e,r){return t=+t,e|=0,r||R(this,t,e,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):M(this,t,e,!1),e+4},u.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e|=0,!n){var i=Math.pow(2,8*r-1);R(this,t,e,r,i-1,-i)}var o=0,s=1,a=0;for(this[e]=255&t;++o>0)-a&255;return e+r},u.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e|=0,!n){var i=Math.pow(2,8*r-1);R(this,t,e,r,i-1,-i)}var o=r-1,s=1,a=0;for(this[e+o]=255&t;--o>=0&&(s*=256);)t<0&&0===a&&0!==this[e+o+1]&&(a=1),this[e+o]=(t/s>>0)-a&255;return e+r},u.prototype.writeInt8=function(t,e,r){return t=+t,e|=0,r||R(this,t,e,1,127,-128),u.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[e]=255&t,e+1},u.prototype.writeInt16LE=function(t,e,r){return t=+t,e|=0,r||R(this,t,e,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):j(this,t,e,!0),e+2},u.prototype.writeInt16BE=function(t,e,r){return t=+t,e|=0,r||R(this,t,e,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):j(this,t,e,!1),e+2},u.prototype.writeInt32LE=function(t,e,r){return t=+t,e|=0,r||R(this,t,e,4,2147483647,-2147483648),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):M(this,t,e,!0),e+4},u.prototype.writeInt32BE=function(t,e,r){return t=+t,e|=0,r||R(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):M(this,t,e,!1),e+4},u.prototype.writeFloatLE=function(t,e,r){return F(this,t,e,!0,r)},u.prototype.writeFloatBE=function(t,e,r){return F(this,t,e,!1,r)},u.prototype.writeDoubleLE=function(t,e,r){return N(this,t,e,!0,r)},u.prototype.writeDoubleBE=function(t,e,r){return N(this,t,e,!1,r)},u.prototype.copy=function(t,e,r,n){if(r||(r=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n=this.length)throw new RangeError(\"sourceStart out of bounds\");if(n<0)throw new RangeError(\"sourceEnd out of bounds\");n>this.length&&(n=this.length),t.length-e=0;--i)t[i+e]=this[i+r];else if(o<1e3||!u.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,r=void 0===r?this.length:r>>>0,t||(t=0),\"number\"==typeof t)for(o=e;o55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(s+1===n){(e-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(e-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;o.push(r)}else if(r<2048){if((e-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error(\"Invalid code point\");if((e-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function G(t){return n.toByteArray(function(t){if((t=function(t){return t.trim?t.trim():t.replace(/^\\s+|\\s+$/g,\"\")}(t).replace(D,\"\")).length<2)return\"\";for(;t.length%4!=0;)t+=\"=\";return t}(t))}function q(t,e,r,n){for(var i=0;i=e.length||i>=t.length);++i)e[i+r]=t[i];return i}}).call(this,r(3))},function(t,e){var r,n,i=t.exports={};function o(){throw new Error(\"setTimeout has not been defined\")}function s(){throw new Error(\"clearTimeout has not been defined\")}function a(t){if(r===setTimeout)return setTimeout(t,0);if((r===o||!r)&&setTimeout)return r=setTimeout,setTimeout(t,0);try{return r(t,0)}catch(e){try{return r.call(null,t,0)}catch(e){return r.call(this,t,0)}}}!function(){try{r=\"function\"==typeof setTimeout?setTimeout:o}catch(t){r=o}try{n=\"function\"==typeof clearTimeout?clearTimeout:s}catch(t){n=s}}();var u,c=[],l=!1,f=-1;function h(){l&&u&&(l=!1,u.length?c=u.concat(c):f=-1,c.length&&d())}function d(){if(!l){var t=a(h);l=!0;for(var e=c.length;e;){for(u=c,c=[];++f1)for(var r=1;r0){for(;m>p-f;){const r=t[m-h]||\"0\",n=e[m-d]||\"0\";let i=Number(r)+Number(n)+g;i>=10?(i-=10,g=1):g=0,\"\"===y&&0===i||(y=i+y),m--}y&&(y=\".\"+y),m--}if(l>0)for(;m>=0;){const r=t[m-h]||\"0\",n=e[m-d]||\"0\";let i=Number(r)+Number(n)+g;i>=10?(i-=10,g=1):g=0,y=i+y,m--}return 1===g&&(y=g+y),\".\"===y[0]&&(y=\"0\"+y),y}t.exports=i,t.exports.default=i},function(t,e){\"function\"==typeof Object.create?t.exports=function(t,e){e&&(t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:t.exports=function(t,e){if(e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}}},function(t,e,r){\"use strict\";function n(t){return/^[-+]?0(\\.0+)?(e[\\.\\d]+)?$/.test(t)}t.exports=n,t.exports.default=n},function(t,e,r){(function(n){e.formatArgs=function(e){if(e[0]=(this.useColors?\"%c\":\"\")+this.namespace+(this.useColors?\" %c\":\" \")+e[0]+(this.useColors?\"%c \":\" \")+\"+\"+t.exports.humanize(this.diff),!this.useColors)return;const r=\"color: \"+this.color;e.splice(1,0,r,\"color: inherit\");let n=0,i=0;e[0].replace(/%[a-zA-Z%]/g,t=>{\"%%\"!==t&&(n++,\"%c\"===t&&(i=n))}),e.splice(i,0,r)},e.save=function(t){try{t?e.storage.setItem(\"debug\",t):e.storage.removeItem(\"debug\")}catch(t){}},e.load=function(){let t;try{t=e.storage.getItem(\"debug\")}catch(t){}!t&&void 0!==n&&\"env\"in n&&(t=n.env.DEBUG);return t},e.useColors=function(){if(\"undefined\"!=typeof window&&window.process&&(\"renderer\"===window.process.type||window.process.__nwjs))return!0;if(\"undefined\"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/))return!1;return\"undefined\"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||\"undefined\"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||\"undefined\"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/)&&parseInt(RegExp.$1,10)>=31||\"undefined\"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/)},e.storage=function(){try{return localStorage}catch(t){}}(),e.destroy=(()=>{let t=!1;return()=>{t||(t=!0,console.warn(\"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.\"))}})(),e.colors=[\"#0000CC\",\"#0000FF\",\"#0033CC\",\"#0033FF\",\"#0066CC\",\"#0066FF\",\"#0099CC\",\"#0099FF\",\"#00CC00\",\"#00CC33\",\"#00CC66\",\"#00CC99\",\"#00CCCC\",\"#00CCFF\",\"#3300CC\",\"#3300FF\",\"#3333CC\",\"#3333FF\",\"#3366CC\",\"#3366FF\",\"#3399CC\",\"#3399FF\",\"#33CC00\",\"#33CC33\",\"#33CC66\",\"#33CC99\",\"#33CCCC\",\"#33CCFF\",\"#6600CC\",\"#6600FF\",\"#6633CC\",\"#6633FF\",\"#66CC00\",\"#66CC33\",\"#9900CC\",\"#9900FF\",\"#9933CC\",\"#9933FF\",\"#99CC00\",\"#99CC33\",\"#CC0000\",\"#CC0033\",\"#CC0066\",\"#CC0099\",\"#CC00CC\",\"#CC00FF\",\"#CC3300\",\"#CC3333\",\"#CC3366\",\"#CC3399\",\"#CC33CC\",\"#CC33FF\",\"#CC6600\",\"#CC6633\",\"#CC9900\",\"#CC9933\",\"#CCCC00\",\"#CCCC33\",\"#FF0000\",\"#FF0033\",\"#FF0066\",\"#FF0099\",\"#FF00CC\",\"#FF00FF\",\"#FF3300\",\"#FF3333\",\"#FF3366\",\"#FF3399\",\"#FF33CC\",\"#FF33FF\",\"#FF6600\",\"#FF6633\",\"#FF9900\",\"#FF9933\",\"#FFCC00\",\"#FFCC33\"],e.log=console.debug||console.log||(()=>{}),t.exports=r(134)(e);const{formatters:i}=t.exports;i.j=function(t){try{return JSON.stringify(t)}catch(t){return\"[UnexpectedJSONParseError]: \"+t.message}}}).call(this,r(8))},function(t,e,r){\"use strict\";r.d(e,\"a\",(function(){return o})),r.d(e,\"b\",(function(){return s}));const n={deserialize:t=>Object.assign(Error(t.message),{name:t.name,stack:t.stack}),serialize:t=>({__error_marker:\"$$error\",message:t.message,name:t.name,stack:t.stack})};let i={deserialize(t){return(e=t)&&\"object\"==typeof e&&\"__error_marker\"in e&&\"$$error\"===e.__error_marker?n.deserialize(t):t;var e},serialize:t=>t instanceof Error?n.serialize(t):t};function o(t){return i.deserialize(t)}function s(t){return i.serialize(t)}},function(t,e,r){\"use strict\";var n=r(28),i=Object.keys||function(t){var e=[];for(var r in t)e.push(r);return e};t.exports=f;var o=Object.create(r(21));o.inherits=r(10);var s=r(61),a=r(65);o.inherits(f,s);for(var u=i(a.prototype),c=0;c/^[a-zA-Z][a-zA-Z\\d+\\-.]*:/.test(t);function a(t){const e=new Blob([t],{type:\"application/javascript\"});return URL.createObjectURL(e)}let u;function c(){return u||(u=function(){if(\"undefined\"==typeof Worker)return class{constructor(){throw Error(\"No web worker implementation available. You might have tried to spawn a worker within a worker in a browser that doesn't support workers in workers.\")}};class t extends Worker{constructor(t,e){var r,n;\"string\"==typeof t&&e&&e._baseURL?t=new URL(t,e._baseURL):\"string\"==typeof t&&!s(t)&&i().match(/^file:\\/\\//i)&&(t=new URL(t,i().replace(/\\/[^\\/]+$/,\"/\")),(null===(r=null==e?void 0:e.CORSWorkaround)||void 0===r||r)&&(t=a(`importScripts(${JSON.stringify(t)});`))),\"string\"==typeof t&&s(t)&&(null===(n=null==e?void 0:e.CORSWorkaround)||void 0===n||n)&&(t=a(`importScripts(${JSON.stringify(t)});`)),super(t,e)}}class e extends t{constructor(t,e){super(window.URL.createObjectURL(t),e)}static fromText(t,r){const n=new window.Blob([t],{type:\"text/javascript\"});return new e(n,r)}}return{blob:e,default:t}}()),u}},function(t,e,r){\"use strict\";var n,i;r.d(e,\"a\",(function(){return n})),r.d(e,\"b\",(function(){return i})),function(t){t.cancel=\"cancel\",t.run=\"run\"}(n||(n={})),function(t){t.error=\"error\",t.init=\"init\",t.result=\"result\",t.running=\"running\",t.uncaughtError=\"uncaughtError\"}(i||(i={}))},function(t,e,r){function n(t){return Object.prototype.toString.call(t)}e.isArray=function(t){return Array.isArray?Array.isArray(t):\"[object Array]\"===n(t)},e.isBoolean=function(t){return\"boolean\"==typeof t},e.isNull=function(t){return null===t},e.isNullOrUndefined=function(t){return null==t},e.isNumber=function(t){return\"number\"==typeof t},e.isString=function(t){return\"string\"==typeof t},e.isSymbol=function(t){return\"symbol\"==typeof t},e.isUndefined=function(t){return void 0===t},e.isRegExp=function(t){return\"[object RegExp]\"===n(t)},e.isObject=function(t){return\"object\"==typeof t&&null!==t},e.isDate=function(t){return\"[object Date]\"===n(t)},e.isError=function(t){return\"[object Error]\"===n(t)||t instanceof Error},e.isFunction=function(t){return\"function\"==typeof t},e.isPrimitive=function(t){return null===t||\"boolean\"==typeof t||\"number\"==typeof t||\"string\"==typeof t||\"symbol\"==typeof t||void 0===t},e.isBuffer=r(7).Buffer.isBuffer},function(t,e,r){\"use strict\";const n=r(11),i=r(50);function o(t){return n(t)?\"\":i(t)}t.exports=o,t.exports.default=o},function(t,e,r){\"use strict\";const n=r(35);function i(t,e){return n(t,\"2\",e)}t.exports=i,t.exports.default=i},function(t,e,r){\"use strict\";r.d(e,\"a\",(function(){return o}));var n=r(2);function i(t){throw Error(t)}const o={errors:t=>t[n.a]||i(\"Error observable not found. Make sure to pass a thread instance as returned by the spawn() promise.\"),events:t=>t[n.b]||i(\"Events observable not found. Make sure to pass a thread instance as returned by the spawn() promise.\"),terminate:t=>t[n.c]()}},function(t,e){},function(t,e,r){\"use strict\";const n=()=>\"function\"==typeof Symbol,i=t=>n()&&Boolean(Symbol[t]),o=t=>i(t)?Symbol[t]:\"@@\"+t;i(\"asyncIterator\")||(Symbol.asyncIterator=Symbol.asyncIterator||Symbol.for(\"Symbol.asyncIterator\"));const s=o(\"iterator\"),a=o(\"observable\"),u=o(\"species\");function c(t,e){const r=t[e];if(null!=r){if(\"function\"!=typeof r)throw new TypeError(r+\" is not a function\");return r}}function l(t){let e=t.constructor;return void 0!==e&&(e=e[u],null===e&&(e=void 0)),void 0!==e?e:v}function f(t){f.log?f.log(t):setTimeout(()=>{throw t},0)}function h(t){Promise.resolve().then(()=>{try{t()}catch(t){f(t)}})}function d(t){const e=t._cleanup;if(void 0!==e&&(t._cleanup=void 0,e))try{if(\"function\"==typeof e)e();else{const t=c(e,\"unsubscribe\");t&&t.call(e)}}catch(t){f(t)}}function p(t){t._observer=void 0,t._queue=void 0,t._state=\"closed\"}function y(t,e,r){t._state=\"running\";const n=t._observer;try{const i=n?c(n,e):void 0;switch(e){case\"next\":i&&i.call(n,r);break;case\"error\":if(p(t),!i)throw r;i.call(n,r);break;case\"complete\":p(t),i&&i.call(n)}}catch(t){f(t)}\"closed\"===t._state?d(t):\"running\"===t._state&&(t._state=\"ready\")}function g(t,e,r){if(\"closed\"!==t._state)return\"buffering\"===t._state?(t._queue=t._queue||[],void t._queue.push({type:e,value:r})):\"ready\"!==t._state?(t._state=\"buffering\",t._queue=[{type:e,value:r}],void h(()=>function(t){const e=t._queue;if(e){t._queue=void 0,t._state=\"ready\";for(const r of e)if(y(t,r.type,r.value),\"closed\"===t._state)break}}(t))):void y(t,e,r)}class m{constructor(t,e){this._cleanup=void 0,this._observer=t,this._queue=void 0,this._state=\"initializing\";const r=new b(this);try{this._cleanup=e.call(void 0,r)}catch(t){r.error(t)}\"initializing\"===this._state&&(this._state=\"ready\")}get closed(){return\"closed\"===this._state}unsubscribe(){\"closed\"!==this._state&&(p(this),d(this))}}class b{constructor(t){this._subscription=t}get closed(){return\"closed\"===this._subscription._state}next(t){g(this._subscription,\"next\",t)}error(t){g(this._subscription,\"error\",t)}complete(){g(this._subscription,\"complete\")}}class v{constructor(t){if(!(this instanceof v))throw new TypeError(\"Observable cannot be called as a function\");if(\"function\"!=typeof t)throw new TypeError(\"Observable initializer must be a function\");this._subscriber=t}subscribe(t,e,r){return\"object\"==typeof t&&null!==t||(t={next:t,error:e,complete:r}),new m(t,this._subscriber)}pipe(t,...e){let r=this;for(const n of[t,...e])r=n(r);return r}tap(t,e,r){const n=\"object\"!=typeof t||null===t?{next:t,error:e,complete:r}:t;return new v(t=>this.subscribe({next(e){n.next&&n.next(e),t.next(e)},error(e){n.error&&n.error(e),t.error(e)},complete(){n.complete&&n.complete(),t.complete()},start(t){n.start&&n.start(t)}}))}forEach(t){return new Promise((e,r)=>{if(\"function\"!=typeof t)return void r(new TypeError(t+\" is not a function\"));function n(){i.unsubscribe(),e(void 0)}const i=this.subscribe({next(e){try{t(e,n)}catch(t){r(t),i.unsubscribe()}},error(t){r(t)},complete(){e(void 0)}})})}map(t){if(\"function\"!=typeof t)throw new TypeError(t+\" is not a function\");return new(l(this))(e=>this.subscribe({next(r){let n=r;try{n=t(r)}catch(t){return e.error(t)}e.next(n)},error(t){e.error(t)},complete(){e.complete()}}))}filter(t){if(\"function\"!=typeof t)throw new TypeError(t+\" is not a function\");return new(l(this))(e=>this.subscribe({next(r){try{if(!t(r))return}catch(t){return e.error(t)}e.next(r)},error(t){e.error(t)},complete(){e.complete()}}))}reduce(t,e){if(\"function\"!=typeof t)throw new TypeError(t+\" is not a function\");const r=l(this),n=arguments.length>1;let i=!1,o=e;return new r(e=>this.subscribe({next(r){const s=!i;if(i=!0,!s||n)try{o=t(o,r)}catch(t){return e.error(t)}else o=r},error(t){e.error(t)},complete(){if(!i&&!n)return e.error(new TypeError(\"Cannot reduce an empty sequence\"));e.next(o),e.complete()}}))}concat(...t){const e=l(this);return new e(r=>{let n,i=0;return function o(s){n=s.subscribe({next(t){r.next(t)},error(t){r.error(t)},complete(){i===t.length?(n=void 0,r.complete()):o(e.from(t[i++]))}})}(this),()=>{n&&(n.unsubscribe(),n=void 0)}})}flatMap(t){if(\"function\"!=typeof t)throw new TypeError(t+\" is not a function\");const e=l(this);return new e(r=>{const n=[],i=this.subscribe({next(i){let s;if(t)try{s=t(i)}catch(t){return r.error(t)}else s=i;const a=e.from(s).subscribe({next(t){r.next(t)},error(t){r.error(t)},complete(){const t=n.indexOf(a);t>=0&&n.splice(t,1),o()}});n.push(a)},error(t){r.error(t)},complete(){o()}});function o(){i.closed&&0===n.length&&r.complete()}return()=>{n.forEach(t=>t.unsubscribe()),i.unsubscribe()}})}[(Symbol.observable,a)](){return this}static from(t){const e=\"function\"==typeof this?this:v;if(null==t)throw new TypeError(t+\" is not an object\");const r=c(t,a);if(r){const n=r.call(t);if(Object(n)!==n)throw new TypeError(n+\" is not an object\");return function(t){return t instanceof v}(n)&&n.constructor===e?n:new e(t=>n.subscribe(t))}if(i(\"iterator\")){const r=c(t,s);if(r)return new e(e=>{h(()=>{if(!e.closed){for(const n of r.call(t))if(e.next(n),e.closed)return;e.complete()}})})}if(Array.isArray(t))return new e(e=>{h(()=>{if(!e.closed){for(const r of t)if(e.next(r),e.closed)return;e.complete()}})});throw new TypeError(t+\" is not observable\")}static of(...t){return new(\"function\"==typeof this?this:v)(e=>{h(()=>{if(!e.closed){for(const r of t)if(e.next(r),e.closed)return;e.complete()}})})}static get[u](){return this}}n()&&Object.defineProperty(v,Symbol(\"extensions\"),{value:{symbol:a,hostReportError:f},configurable:!0});e.a=v},function(t,e,r){\"use strict\";var n;r.d(e,\"a\",(function(){return n})),function(t){t.internalError=\"internalError\",t.message=\"message\",t.termination=\"termination\"}(n||(n={}))},function(t,e,r){\"use strict\";(function(e){void 0===e||!e.version||0===e.version.indexOf(\"v0.\")||0===e.version.indexOf(\"v1.\")&&0!==e.version.indexOf(\"v1.8.\")?t.exports={nextTick:function(t,r,n,i){if(\"function\"!=typeof t)throw new TypeError('\"callback\" argument must be a function');var o,s,a=arguments.length;switch(a){case 0:case 1:return e.nextTick(t);case 2:return e.nextTick((function(){t.call(null,r)}));case 3:return e.nextTick((function(){t.call(null,r,n)}));case 4:return e.nextTick((function(){t.call(null,r,n,i)}));default:for(o=new Array(a-1),s=0;s0){for(;m>p-f;){let r=t[m-h]||\"0\",n=e[m-d]||\"0\";r-=g,g=0;let i=r-n;if(i<0)for(;i<0;)g++,i+=10;else g&&g--;\"\"===y&&0===i||(y=i+y),m--}\"\"!==y&&(y=\".\"+y),m--}if(l>0){for(;m>0;){let r=t[m-h]||\"0\",n=e[m-d]||\"0\";r-=g,g=0;let i=r-n;if(i<0)for(;i<0;)g++,i+=10;else g&&g--;y=i+y,m--}const r=t[0-h]||\"0\",n=e[0-d]||\"0\";let i=Number(r)-(g>0?1:0)-Number(n);0!==i&&(y=i+y),y=y.replace(/^0+/,\"\")}return\".\"===y[0]&&(y=\"0\"+y),y}t.exports=i,t.exports.default=i},function(t,e,r){\"use strict\";const n=r(5),i=r(6),o=r(33),s=r(49);function a(t,e,{format:r=\"string\",max_decimal_digits:a=100,ellipsis:u=!1}={}){\"0\"===t[0]&&(t=t.substring(1)),\"0\"===e[0]&&(e=e.substring(1));const c=t.indexOf(\".\"),l=e.indexOf(\".\"),f=-1===c?t.length:c,h=-1===l?0:e.length-1-l;let d=!1;t=t.replace(/\\./,\"\"),e=e.replace(/\\./,\"\");const p=t.length;let y,g=\"\",m=\"\",b=-1*h,v=0;for(let r=0;r\"===y){let t=1,r=i(e,e),s=e;for(;\">\"!==n(r,g);)t++,s=r,r=i(r,e);if(t=t.toString(),\"\"!==m)for(let e=t.length;e<=v;e++)m+=\"0\";m+=t,g=o(g,s),v=0}else{if(\"<\"===y){\"\"===m&&b++,v++;continue}if(\"=\"===y){if(\"\"!==m)for(let t=0;t3){m+=\"...\",d=!0;break}}else t[g]=1;const r=n(g,e);if(\">\"===r){let t=1,r=i(e,e),s=e;for(;\">\"!==n(r,g);)t++,s=r,r=i(r,e);t=t.toString();for(let e=t.length;e<=v;e++)m+=\"0\";if(m+=t,g=o(g,s),\"0\"===g)break;v=0}else{if(\"<\"===r){v++;continue}if(\"=\"===r){for(let t=0;tx){for(let t=x;t0&&(m=s(m.substring(0,m.length-S+1))),\".\"===m[0]&&(m=\"0\"+m),\"object\"===r?{quotient:m,extra_decimals:S}:m}t.exports=a,t.exports.default=a},function(t,e,r){\"use strict\";const n=r(0),i=r(5),o=r(15),s=r(9),a=r(31);function u(t,e,{infinity_minus_infinity:r=\"NaN\"}={}){t=n(t),e=n(e);const u=!(\"-\"===t[0]),c=!(\"-\"===e[0]),l=o(t),f=o(e);if(l&&f){if(u===c)return r;if(u)return\"Infinity\";if(c)return\"-Infinity\"}else{if(l)return t;if(f)return c?\"-Infinity\":\"Infinity\"}if(u){if(c){const r=i(t,e);return\">\"===r?a(t,e):\"<\"===r?\"-\"+a(e,t):\"0\"}return s(t,e.substring(1))}if(c)return\"-\"+s(t.substring(1),e);{t=t.substring(1),e=e.substring(1);const r=i(t,e);return\">\"===r?\"-\"+a(t,e):\"<\"===r?a(e,t):\"0\"}}t.exports=u,t.exports.default=u},function(t,e,r){\"use strict\";const n=r(0),i=r(5);function o(t,e){t=n(t),e=n(e);const r=\"-\"!==t[0],o=\"-\"!==e[0];return r?o?i(t,e):\">\":o?\"<\":i(e.substring(1),t.substring(1))}t.exports=o,t.exports.default=o},function(t,e,r){\"use strict\";const n=r(4),i=r(0),o=r(1),s=r(77),a=r(16),u=r(52),c=r(78),l=r(11),f=r(53),h=r(54),d=r(81),p=r(37),y=r(36),g=r(22),m=r(85);function b(t,e,{zero_to_the_power_of_zero:r=\"1\",ellipsis:b=!1,imaginary:v=!0,max_decimal_digits:w=100,fraction:x=!1}={}){t=i(t),e=i(e);const _=v&&u(t);_&&(t=t.replace(/i$/,\"\"));const S=l(t),A=l(e);if(S&&A)return r;if(A)return\"1\";const E=g(e);if(S){if(\"+\"===E)return\"0\";if(\"-\"===E)return\"Infinity\"}const k=a(e);if(\"+\"===E&&k){let r=h(t,e);return\"number\"==typeof w&&(r=y(r,{digits:w})),_&&c(e)&&(r+=\"i\"),r}if(\"-\"===E&&k){const r=\"1\",i=h(t,n(e));return o(r,i,{ellipsis:b,max_decimal_digits:w})}if(!k){e=n(e);let[r,i]=e.includes(\"/\")?e.split(\"/\"):s(e);[r,i]=m(r,i);let o=p(t,i,{imaginary:v}),a=f(r,o);return\"number\"==typeof w&&(a=y(a,{digits:w})),\"-\"===E&&(a=d(a,{fraction:x,max_decimal_digits:w})),a}}t.exports=b,t.exports.default=b},function(t,e,r){\"use strict\";const n=r(52),i=r(164);function o(t,{digits:e=0}={}){return n(t)?i(t.substring(0,t.length-1),{digits:e})+\"i\":i(t,{digits:e})}t.exports=o,t.exports.default=o},function(t,e,r){\"use strict\";const n=r(4),i=r(0),o=r(5),s=r(82),a=r(16),u=r(80),c=r(54),l=r(83);function f(t,e,{imaginary:r=!0,max_decimal_digits:f=100}={}){if(t=i(t),\"1\"===(e=i(e)))return t;if(\"1\"===t)return\"1\";if(!a(e))throw new Error(\"[preciso] can't find fractional roots\");if(u(e))throw new Error(\"[preciso] can't find root of negative indexes\");const h=n(t),d=u(t),p=s(e),y=d&&p;if(y&&!r)throw new Error(\"[preciso] root has an imaginary number\");const g=d&&!p?\"-\":\"\",m=l(h,e),b=[\"9\",\"8\",\"7\",\"6\",\"5\",\"4\",\"3\",\"2\",\"1\",\"0\"];let v=\"\";for(let t=0;to)return\">\";if(n\",'\"',\"`\",\" \",\"\\r\",\"\\n\",\"\\t\"]),c=[\"'\"].concat(u),l=[\"%\",\"/\",\"?\",\";\",\"#\"].concat(c),f=[\"/\",\"?\",\"#\"],h=/^[+a-z0-9A-Z_-]{0,63}$/,d=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,p={javascript:!0,\"javascript:\":!0},y={javascript:!0,\"javascript:\":!0},g={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,\"http:\":!0,\"https:\":!0,\"ftp:\":!0,\"gopher:\":!0,\"file:\":!0},m=r(142);function b(t,e,r){if(t&&\"object\"==typeof t&&t instanceof i)return t;var n=new i;return n.parse(t,e,r),n}i.prototype.parse=function(t,e,r){if(\"string\"!=typeof t)throw new TypeError(\"Parameter 'url' must be a string, not \"+typeof t);var i=t.indexOf(\"?\"),s=-1!==i&&i127?R+=\"x\":R+=I[j];if(!R.match(h)){var L=C.slice(0,k),F=C.slice(k+1),N=I.match(d);N&&(L.push(N[1]),F.unshift(N[2])),F.length&&(b=\"/\"+F.join(\".\")+b),this.hostname=L.join(\".\");break}}}this.hostname.length>255?this.hostname=\"\":this.hostname=this.hostname.toLowerCase(),O||(this.hostname=n.toASCII(this.hostname));var D=this.port?\":\"+this.port:\"\",U=this.hostname||\"\";this.host=U+D,this.href+=this.host,O&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),\"/\"!==b[0]&&(b=\"/\"+b))}if(!p[x])for(k=0,P=c.length;k0)&&r.host.split(\"@\"))&&(r.auth=O.shift(),r.hostname=O.shift(),r.host=r.hostname);return r.search=t.search,r.query=t.query,null===r.pathname&&null===r.search||(r.path=(r.pathname?r.pathname:\"\")+(r.search?r.search:\"\")),r.href=r.format(),r}if(!_.length)return r.pathname=null,r.search?r.path=\"/\"+r.search:r.path=null,r.href=r.format(),r;for(var A=_.slice(-1)[0],E=(r.host||t.host||_.length>1)&&(\".\"===A||\"..\"===A)||\"\"===A,k=0,T=_.length;T>=0;T--)\".\"===(A=_[T])?_.splice(T,1):\"..\"===A?(_.splice(T,1),k++):k&&(_.splice(T,1),k--);if(!w&&!x)for(;k--;k)_.unshift(\"..\");!w||\"\"===_[0]||_[0]&&\"/\"===_[0].charAt(0)||_.unshift(\"\"),E&&\"/\"!==_.join(\"/\").substr(-1)&&_.push(\"\");var O,C=\"\"===_[0]||_[0]&&\"/\"===_[0].charAt(0);S&&(r.hostname=C?\"\":_.length?_.shift():\"\",r.host=r.hostname,(O=!!(r.host&&r.host.indexOf(\"@\")>0)&&r.host.split(\"@\"))&&(r.auth=O.shift(),r.hostname=O.shift(),r.host=r.hostname));return(w=w||r.host&&_.length)&&!C&&_.unshift(\"\"),_.length>0?r.pathname=_.join(\"/\"):(r.pathname=null,r.path=null),null===r.pathname&&null===r.search||(r.path=(r.pathname?r.pathname:\"\")+(r.search?r.search:\"\")),r.auth=t.auth||r.auth,r.slashes=r.slashes||t.slashes,r.href=r.format(),r},i.prototype.parseHost=function(){var t=this.host,e=s.exec(t);e&&(\":\"!==(e=e[0])&&(this.port=e.substr(1)),t=t.substr(0,t.length-e.length)),t&&(this.hostname=t)},e.parse=b,e.resolve=function(t,e){return b(t,!1,!0).resolve(e)},e.resolveObject=function(t,e){return t?b(t,!1,!0).resolveObject(e):e},e.format=function(t){return\"string\"==typeof t&&(t=b(t)),t instanceof i?t.format():i.prototype.format.call(t)},e.Url=i},function(t,e,r){(function(t){var n=r(136),i=r(70),o=r(138),s=r(139),a=r(39),u=e;u.request=function(e,r){e=\"string\"==typeof e?a.parse(e):o(e);var i=-1===t.location.protocol.search(/^https?:$/)?\"http:\":\"\",s=e.protocol||i,u=e.hostname||e.host,c=e.port,l=e.path||\"/\";u&&-1!==u.indexOf(\":\")&&(u=\"[\"+u+\"]\"),e.url=(u?s+\"//\"+u:\"\")+(c?\":\"+c:\"\")+l,e.method=(e.method||\"GET\").toUpperCase(),e.headers=e.headers||{};var f=new n(e);return r&&f.on(\"response\",r),f},u.get=function(t,e){var r=u.request(t,e);return r.end(),r},u.ClientRequest=n,u.IncomingMessage=i.IncomingMessage,u.Agent=function(){},u.Agent.defaultMaxSockets=4,u.globalAgent=new u.Agent,u.STATUS_CODES=s,u.METHODS=[\"CHECKOUT\",\"CONNECT\",\"COPY\",\"DELETE\",\"GET\",\"HEAD\",\"LOCK\",\"M-SEARCH\",\"MERGE\",\"MKACTIVITY\",\"MKCOL\",\"MOVE\",\"NOTIFY\",\"OPTIONS\",\"PATCH\",\"POST\",\"PROPFIND\",\"PROPPATCH\",\"PURGE\",\"PUT\",\"REPORT\",\"SEARCH\",\"SUBSCRIBE\",\"TRACE\",\"UNLOCK\",\"UNSUBSCRIBE\"]}).call(this,r(3))},,function(t,e,r){(e=t.exports=r(61)).Stream=e,e.Readable=e,e.Writable=r(65),e.Duplex=r(14),e.Transform=r(67),e.PassThrough=r(122)},function(t,e,r){var n=r(7),i=n.Buffer;function o(t,e){for(var r in t)e[r]=t[r]}function s(t,e,r){return i(t,e,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?t.exports=n:(o(n,e),e.Buffer=s),o(i,s),s.from=function(t,e,r){if(\"number\"==typeof t)throw new TypeError(\"Argument must not be a number\");return i(t,e,r)},s.alloc=function(t,e,r){if(\"number\"!=typeof t)throw new TypeError(\"Argument must be a number\");var n=i(t);return void 0!==e?\"string\"==typeof r?n.fill(e,r):n.fill(e):n.fill(0),n},s.allocUnsafe=function(t){if(\"number\"!=typeof t)throw new TypeError(\"Argument must be a number\");return i(t)},s.allocUnsafeSlow=function(t){if(\"number\"!=typeof t)throw new TypeError(\"Argument must be a number\");return n.SlowBuffer(t)}},function(t,e,r){\"use strict\";var n=SyntaxError,i=Function,o=TypeError,s=function(t){try{return i('\"use strict\"; return ('+t+\").constructor;\")()}catch(t){}},a=Object.getOwnPropertyDescriptor;if(a)try{a({},\"\")}catch(t){a=null}var u=function(){throw new o},c=a?function(){try{return u}catch(t){try{return a(arguments,\"callee\").get}catch(t){return u}}}():u,l=r(145)(),f=r(147)(),h=Object.getPrototypeOf||(f?function(t){return t.__proto__}:null),d={},p=\"undefined\"!=typeof Uint8Array&&h?h(Uint8Array):void 0,y={\"%AggregateError%\":\"undefined\"==typeof AggregateError?void 0:AggregateError,\"%Array%\":Array,\"%ArrayBuffer%\":\"undefined\"==typeof ArrayBuffer?void 0:ArrayBuffer,\"%ArrayIteratorPrototype%\":l&&h?h([][Symbol.iterator]()):void 0,\"%AsyncFromSyncIteratorPrototype%\":void 0,\"%AsyncFunction%\":d,\"%AsyncGenerator%\":d,\"%AsyncGeneratorFunction%\":d,\"%AsyncIteratorPrototype%\":d,\"%Atomics%\":\"undefined\"==typeof Atomics?void 0:Atomics,\"%BigInt%\":\"undefined\"==typeof BigInt?void 0:BigInt,\"%BigInt64Array%\":\"undefined\"==typeof BigInt64Array?void 0:BigInt64Array,\"%BigUint64Array%\":\"undefined\"==typeof BigUint64Array?void 0:BigUint64Array,\"%Boolean%\":Boolean,\"%DataView%\":\"undefined\"==typeof DataView?void 0:DataView,\"%Date%\":Date,\"%decodeURI%\":decodeURI,\"%decodeURIComponent%\":decodeURIComponent,\"%encodeURI%\":encodeURI,\"%encodeURIComponent%\":encodeURIComponent,\"%Error%\":Error,\"%eval%\":eval,\"%EvalError%\":EvalError,\"%Float32Array%\":\"undefined\"==typeof Float32Array?void 0:Float32Array,\"%Float64Array%\":\"undefined\"==typeof Float64Array?void 0:Float64Array,\"%FinalizationRegistry%\":\"undefined\"==typeof FinalizationRegistry?void 0:FinalizationRegistry,\"%Function%\":i,\"%GeneratorFunction%\":d,\"%Int8Array%\":\"undefined\"==typeof Int8Array?void 0:Int8Array,\"%Int16Array%\":\"undefined\"==typeof Int16Array?void 0:Int16Array,\"%Int32Array%\":\"undefined\"==typeof Int32Array?void 0:Int32Array,\"%isFinite%\":isFinite,\"%isNaN%\":isNaN,\"%IteratorPrototype%\":l&&h?h(h([][Symbol.iterator]())):void 0,\"%JSON%\":\"object\"==typeof JSON?JSON:void 0,\"%Map%\":\"undefined\"==typeof Map?void 0:Map,\"%MapIteratorPrototype%\":\"undefined\"!=typeof Map&&l&&h?h((new Map)[Symbol.iterator]()):void 0,\"%Math%\":Math,\"%Number%\":Number,\"%Object%\":Object,\"%parseFloat%\":parseFloat,\"%parseInt%\":parseInt,\"%Promise%\":\"undefined\"==typeof Promise?void 0:Promise,\"%Proxy%\":\"undefined\"==typeof Proxy?void 0:Proxy,\"%RangeError%\":RangeError,\"%ReferenceError%\":ReferenceError,\"%Reflect%\":\"undefined\"==typeof Reflect?void 0:Reflect,\"%RegExp%\":RegExp,\"%Set%\":\"undefined\"==typeof Set?void 0:Set,\"%SetIteratorPrototype%\":\"undefined\"!=typeof Set&&l&&h?h((new Set)[Symbol.iterator]()):void 0,\"%SharedArrayBuffer%\":\"undefined\"==typeof SharedArrayBuffer?void 0:SharedArrayBuffer,\"%String%\":String,\"%StringIteratorPrototype%\":l&&h?h(\"\"[Symbol.iterator]()):void 0,\"%Symbol%\":l?Symbol:void 0,\"%SyntaxError%\":n,\"%ThrowTypeError%\":c,\"%TypedArray%\":p,\"%TypeError%\":o,\"%Uint8Array%\":\"undefined\"==typeof Uint8Array?void 0:Uint8Array,\"%Uint8ClampedArray%\":\"undefined\"==typeof Uint8ClampedArray?void 0:Uint8ClampedArray,\"%Uint16Array%\":\"undefined\"==typeof Uint16Array?void 0:Uint16Array,\"%Uint32Array%\":\"undefined\"==typeof Uint32Array?void 0:Uint32Array,\"%URIError%\":URIError,\"%WeakMap%\":\"undefined\"==typeof WeakMap?void 0:WeakMap,\"%WeakRef%\":\"undefined\"==typeof WeakRef?void 0:WeakRef,\"%WeakSet%\":\"undefined\"==typeof WeakSet?void 0:WeakSet};if(h)try{null.error}catch(t){var g=h(h(t));y[\"%Error.prototype%\"]=g}var m={\"%ArrayBufferPrototype%\":[\"ArrayBuffer\",\"prototype\"],\"%ArrayPrototype%\":[\"Array\",\"prototype\"],\"%ArrayProto_entries%\":[\"Array\",\"prototype\",\"entries\"],\"%ArrayProto_forEach%\":[\"Array\",\"prototype\",\"forEach\"],\"%ArrayProto_keys%\":[\"Array\",\"prototype\",\"keys\"],\"%ArrayProto_values%\":[\"Array\",\"prototype\",\"values\"],\"%AsyncFunctionPrototype%\":[\"AsyncFunction\",\"prototype\"],\"%AsyncGenerator%\":[\"AsyncGeneratorFunction\",\"prototype\"],\"%AsyncGeneratorPrototype%\":[\"AsyncGeneratorFunction\",\"prototype\",\"prototype\"],\"%BooleanPrototype%\":[\"Boolean\",\"prototype\"],\"%DataViewPrototype%\":[\"DataView\",\"prototype\"],\"%DatePrototype%\":[\"Date\",\"prototype\"],\"%ErrorPrototype%\":[\"Error\",\"prototype\"],\"%EvalErrorPrototype%\":[\"EvalError\",\"prototype\"],\"%Float32ArrayPrototype%\":[\"Float32Array\",\"prototype\"],\"%Float64ArrayPrototype%\":[\"Float64Array\",\"prototype\"],\"%FunctionPrototype%\":[\"Function\",\"prototype\"],\"%Generator%\":[\"GeneratorFunction\",\"prototype\"],\"%GeneratorPrototype%\":[\"GeneratorFunction\",\"prototype\",\"prototype\"],\"%Int8ArrayPrototype%\":[\"Int8Array\",\"prototype\"],\"%Int16ArrayPrototype%\":[\"Int16Array\",\"prototype\"],\"%Int32ArrayPrototype%\":[\"Int32Array\",\"prototype\"],\"%JSONParse%\":[\"JSON\",\"parse\"],\"%JSONStringify%\":[\"JSON\",\"stringify\"],\"%MapPrototype%\":[\"Map\",\"prototype\"],\"%NumberPrototype%\":[\"Number\",\"prototype\"],\"%ObjectPrototype%\":[\"Object\",\"prototype\"],\"%ObjProto_toString%\":[\"Object\",\"prototype\",\"toString\"],\"%ObjProto_valueOf%\":[\"Object\",\"prototype\",\"valueOf\"],\"%PromisePrototype%\":[\"Promise\",\"prototype\"],\"%PromiseProto_then%\":[\"Promise\",\"prototype\",\"then\"],\"%Promise_all%\":[\"Promise\",\"all\"],\"%Promise_reject%\":[\"Promise\",\"reject\"],\"%Promise_resolve%\":[\"Promise\",\"resolve\"],\"%RangeErrorPrototype%\":[\"RangeError\",\"prototype\"],\"%ReferenceErrorPrototype%\":[\"ReferenceError\",\"prototype\"],\"%RegExpPrototype%\":[\"RegExp\",\"prototype\"],\"%SetPrototype%\":[\"Set\",\"prototype\"],\"%SharedArrayBufferPrototype%\":[\"SharedArrayBuffer\",\"prototype\"],\"%StringPrototype%\":[\"String\",\"prototype\"],\"%SymbolPrototype%\":[\"Symbol\",\"prototype\"],\"%SyntaxErrorPrototype%\":[\"SyntaxError\",\"prototype\"],\"%TypedArrayPrototype%\":[\"TypedArray\",\"prototype\"],\"%TypeErrorPrototype%\":[\"TypeError\",\"prototype\"],\"%Uint8ArrayPrototype%\":[\"Uint8Array\",\"prototype\"],\"%Uint8ClampedArrayPrototype%\":[\"Uint8ClampedArray\",\"prototype\"],\"%Uint16ArrayPrototype%\":[\"Uint16Array\",\"prototype\"],\"%Uint32ArrayPrototype%\":[\"Uint32Array\",\"prototype\"],\"%URIErrorPrototype%\":[\"URIError\",\"prototype\"],\"%WeakMapPrototype%\":[\"WeakMap\",\"prototype\"],\"%WeakSetPrototype%\":[\"WeakSet\",\"prototype\"]},b=r(45),v=r(149),w=b.call(Function.call,Array.prototype.concat),x=b.call(Function.apply,Array.prototype.splice),_=b.call(Function.call,String.prototype.replace),S=b.call(Function.call,String.prototype.slice),A=b.call(Function.call,RegExp.prototype.exec),E=/[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g,k=/\\\\(\\\\)?/g,T=function(t){var e=S(t,0,1),r=S(t,-1);if(\"%\"===e&&\"%\"!==r)throw new n(\"invalid intrinsic syntax, expected closing `%`\");if(\"%\"===r&&\"%\"!==e)throw new n(\"invalid intrinsic syntax, expected opening `%`\");var i=[];return _(t,E,(function(t,e,r,n){i[i.length]=r?_(n,k,\"$1\"):e||t})),i},O=function(t,e){var r,i=t;if(v(m,i)&&(i=\"%\"+(r=m[i])[0]+\"%\"),v(y,i)){var a=y[i];if(a===d&&(a=function t(e){var r;if(\"%AsyncFunction%\"===e)r=s(\"async function () {}\");else if(\"%GeneratorFunction%\"===e)r=s(\"function* () {}\");else if(\"%AsyncGeneratorFunction%\"===e)r=s(\"async function* () {}\");else if(\"%AsyncGenerator%\"===e){var n=t(\"%AsyncGeneratorFunction%\");n&&(r=n.prototype)}else if(\"%AsyncIteratorPrototype%\"===e){var i=t(\"%AsyncGenerator%\");i&&h&&(r=h(i.prototype))}return y[e]=r,r}(i)),void 0===a&&!e)throw new o(\"intrinsic \"+t+\" exists, but is not available. Please file an issue!\");return{alias:r,name:i,value:a}}throw new n(\"intrinsic \"+t+\" does not exist!\")};t.exports=function(t,e){if(\"string\"!=typeof t||0===t.length)throw new o(\"intrinsic name must be a non-empty string\");if(arguments.length>1&&\"boolean\"!=typeof e)throw new o('\"allowMissing\" argument must be a boolean');if(null===A(/^%?[^%]*%?$/,t))throw new n(\"`%` may not be present anywhere but at the beginning and end of the intrinsic name\");var r=T(t),i=r.length>0?r[0]:\"\",s=O(\"%\"+i+\"%\",e),u=s.name,c=s.value,l=!1,f=s.alias;f&&(i=f[0],x(r,w([0,1],f)));for(var h=1,d=!0;h=r.length){var b=a(c,p);c=(d=!!b)&&\"get\"in b&&!(\"originalValue\"in b.get)?b.get:c[p]}else d=v(c,p),c=c[p];d&&!l&&(y[u]=c)}}return c}},function(t,e,r){\"use strict\";var n=r(148);t.exports=Function.prototype.bind||n},function(t,e,r){\"use strict\";var n=String.prototype.replace,i=/%20/g,o=\"RFC1738\",s=\"RFC3986\";t.exports={default:s,formatters:{RFC1738:function(t){return n.call(t,i,\"+\")},RFC3986:function(t){return String(t)}},RFC1738:o,RFC3986:s}},function(t,e,r){\"use strict\";const n=r(5),i=r(11),o=r(48),s=r(9);function a(t,e,r=\"1\"){if(i(t))return\"0\";let a=t,u=t;for(;\"<\"===n(u,e);)u=s(u,r),a=o(a,u);return a}t.exports=a,t.exports.default=a},function(t,e,r){\"use strict\";const{MAX_SAFE_INTEGER_LENGTH:n}=r(30);function i(t,e){if(\"0\"===t||\"0\"===e)return\"0\";const r=t.indexOf(\".\"),i=e.indexOf(\".\"),o=(-1===r?t.length:r)+(-1===i?e.length:i),s=(-1===r?0:t.length-1-r)+(-1===i?0:e.length-1-i);if(0===s&&o=0;){const t=h,e=h-=15,r=a.substring(e,t);f.push([Number(r),r.length])}const d=[],p=[];for(let t=0,e=l-1;e>=0;e--,t++){const r=u[e],n=Number(r);let i=0,o=\"\";const s=f.length-1;f.forEach(([t,e],r)=>{let a=(i+n*t).toString();const u=a.length;if(u>e&&r!==s){const t=-1*e;o=a.slice(t)+o,i=Number(a.slice(0,t))}else{const t=e-u;for(let e=0;eNumber(t)),o.length])}const y=d.length,g=p[p.length-1][1]+y;let m=\"\",b=0;for(let t=0;t=0&&(e+=r[o])}e>=10?(e=e.toString(),m=e[e.length-1]+m,b=Number(e.slice(0,-1))):(m=e+m,b=0)}if(0===s)m=m.replace(/^0+/,\"\");else{const t=m.length-s;m=m.substring(0,t)+\".\"+m.substring(t),m=m.replace(/^0+/,\"\"),m=m.replace(/\\.?0+$/,\"\"),\".\"===m[0]&&(m=\"0\"+m)}return m}t.exports=i,t.exports.default=i},function(t,e,r){\"use strict\";const n=r(6),i=r(160),o=[\"5\",\"6\",\"7\",\"8\",\"9\"];function s(t){if(t.match(/\\.9+$/))return n(i(t),\"1\");\"+\"===t[0]&&(t=t.substring(1));const e=t.length;let r=\"\";const s=t[t.length-1];if(o.includes(s)){let n;for(n=e-2;n>=0;n--){const e=t[n];if(\".\"===e||\"-\"===e)continue;const i=Number(e)+1;if(10!==i){r=i+r;break}r=\"0\"+r}n>0&&(r=t.substring(0,n)+r)}else r=t.substring(0,e-1);return\".\"===r[r.length-1]&&(r=r.substring(0,r.length-1)),r.indexOf(\".\")>-1&&(r=r.replace(/0+$/,\"\")),r}t.exports=s,t.exports.default=s},function(t,e,r){\"use strict\";function n(t){return\"-\"===t[0]?\"-\":\"+\"}t.exports=n,t.exports.default=n},function(t,e,r){\"use strict\";const n=r(0);function i(t){const e=(t=n(t)).indexOf(\".\");return-1===e?\"0\":(t.length-e-1).toString()}t.exports=i,t.exports.default=i},function(t,e,r){\"use strict\";function n(t){return t.includes(\"i\")}t.exports=n,t.exports.default=n},function(t,e,r){\"use strict\";const n=r(79);function i(){const t=Array.from(arguments),e=\"object\"==typeof t[t.length-1]?t[t.length-1]:void 0,r=Array.isArray(t[0])?t[0]:e?t.slice(0,t.length-1):t;return n(r,e)}t.exports=i,t.exports.default=i},function(t,e,r){\"use strict\";const n=r(17);function i(t,e){const r=Number(e);let i=t;for(let e=1;et.type===c.a.internalError).map(t=>t.error);return Object.assign(t,{[u.a]:i,[u.b]:r,[u.c]:n,[u.e]:e})}function m(t,e){return f(this,void 0,void 0,(function*(){d(\"Initializing new thread\");const r=e&&e.timeout?e.timeout:y,n=(yield function(t,e,r){return f(this,void 0,void 0,(function*(){let n;const i=new Promise((t,i)=>{n=setTimeout(()=>i(Error(r)),e)}),o=yield Promise.race([t,i]);return clearTimeout(n),o}))}(function(t){return new Promise((e,r)=>{const n=i=>{var o;h(\"Message from worker before finishing initialization:\",i.data),(o=i.data)&&\"init\"===o.type?(t.removeEventListener(\"message\",n),e(i.data)):(t=>t&&\"uncaughtError\"===t.type)(i.data)&&(t.removeEventListener(\"message\",n),r(Object(s.a)(i.data.error)))};t.addEventListener(\"message\",n)})}(t),r,`Timeout: Did not receive an init message from worker after ${r}ms. Make sure the worker calls expose().`)).exposed,{termination:i,terminate:u}=function(t){const[e,r]=Object(a.a)();return{terminate:()=>f(this,void 0,void 0,(function*(){p(\"Terminating worker\"),yield t.terminate(),r()})),termination:e}}(t),m=function(t,e){return new o.a(r=>{const n=t=>{const e={type:c.a.message,data:t.data};r.next(e)},i=t=>{p(\"Unhandled promise rejection event in thread:\",t);const e={type:c.a.internalError,error:Error(t.reason)};r.next(e)};t.addEventListener(\"message\",n),t.addEventListener(\"unhandledrejection\",i),e.then(()=>{const e={type:c.a.termination};t.removeEventListener(\"message\",n),t.removeEventListener(\"unhandledrejection\",i),r.next(e),r.complete()})})}(t,i);if(\"function\"===n.type){return g(Object(l.a)(t),t,m,u)}if(\"module\"===n.type){return g(Object(l.b)(t,n.methods),t,m,u)}{const t=n.type;throw Error(\"Worker init message states unexpected type of expose(): \"+t)}}))}}).call(this,r(8))},function(t,e,r){\"use strict\";r.d(e,\"a\",(function(){return g}));var n=r(12),i=r.n(n),o=r(103),s=r(201),a=r(26);function u(t){return Promise.all(t.map(t=>{const e=t=>({status:\"fulfilled\",value:t}),r=t=>({status:\"rejected\",reason:t}),n=Promise.resolve(t);try{return n.then(e,r)}catch(t){return Promise.reject(t)}}))}var c,l=r(19);!function(t){t.initialized=\"initialized\",t.taskCanceled=\"taskCanceled\",t.taskCompleted=\"taskCompleted\",t.taskFailed=\"taskFailed\",t.taskQueued=\"taskQueued\",t.taskQueueDrained=\"taskQueueDrained\",t.taskStart=\"taskStart\",t.terminated=\"terminated\"}(c||(c={}));var f=r(24),h=function(t,e,r,n){return new(r||(r=Promise))((function(i,o){function s(t){try{u(n.next(t))}catch(t){o(t)}}function a(t){try{u(n.throw(t))}catch(t){o(t)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(s,a)}u((n=n.apply(t,e||[])).next())}))};let d=1;class p{constructor(t,e){this.eventSubject=new o.a,this.initErrors=[],this.isClosing=!1,this.nextTaskID=1,this.taskQueue=[];const r=\"number\"==typeof e?{size:e}:e||{},{size:n=l.a}=r;this.debug=i()(\"threads:pool:\"+(r.name||String(d++)).replace(/\\W/g,\" \").trim().replace(/\\s+/g,\"-\")),this.options=r,this.workers=function(t,e){return function(t){const e=[];for(let r=0;r({init:t(),runningTasks:[]}))}(t,n),this.eventObservable=Object(s.a)(a.a.from(this.eventSubject)),Promise.all(this.workers.map(t=>t.init)).then(()=>this.eventSubject.next({type:c.initialized,size:this.workers.length}),t=>{this.debug(\"Error while initializing pool worker:\",t),this.eventSubject.error(t),this.initErrors.push(t)})}findIdlingWorker(){const{concurrency:t=1}=this.options;return this.workers.find(e=>e.runningTasks.lengthh(this,void 0,void 0,(function*(){var n;yield(n=0,new Promise(t=>setTimeout(t,n)));try{yield this.runPoolTask(t,e)}finally{t.runningTasks=t.runningTasks.filter(t=>t!==r),this.isClosing||this.scheduleWork()}})))();t.runningTasks.push(r)}))}scheduleWork(){this.debug(\"Attempt de-queueing a task in order to run it...\");const t=this.findIdlingWorker();if(!t)return;const e=this.taskQueue.shift();if(!e)return this.debug(\"Task queue is empty\"),void this.eventSubject.next({type:c.taskQueueDrained});this.run(t,e)}taskCompletion(t){return new Promise((e,r)=>{const n=this.events().subscribe(i=>{i.type===c.taskCompleted&&i.taskID===t?(n.unsubscribe(),e(i.returnValue)):i.type===c.taskFailed&&i.taskID===t?(n.unsubscribe(),r(i.error)):i.type===c.terminated&&(n.unsubscribe(),r(Error(\"Pool has been terminated before task was run.\")))})})}settled(t=!1){return h(this,void 0,void 0,(function*(){const e=()=>{return t=this.workers,e=t=>t.runningTasks,t.reduce((t,r)=>[...t,...e(r)],[]);var t,e},r=[],n=this.eventObservable.subscribe(t=>{t.type===c.taskFailed&&r.push(t.error)});return this.initErrors.length>0?Promise.reject(this.initErrors[0]):t&&0===this.taskQueue.length?(yield u(e()),r):(yield new Promise((t,e)=>{const r=this.eventObservable.subscribe({next(e){e.type===c.taskQueueDrained&&(r.unsubscribe(),t(void 0))},error:e})}),yield u(e()),n.unsubscribe(),r)}))}completed(t=!1){return h(this,void 0,void 0,(function*(){const e=this.settled(t),r=new Promise((t,r)=>{const n=this.eventObservable.subscribe({next(i){i.type===c.taskQueueDrained?(n.unsubscribe(),t(e)):i.type===c.taskFailed&&(n.unsubscribe(),r(i.error))},error:r})}),n=yield Promise.race([e,r]);if(n.length>0)throw n[0]}))}events(){return this.eventObservable}queue(t){const{maxQueuedJobs:e=1/0}=this.options;if(this.isClosing)throw Error(\"Cannot schedule pool tasks after terminate() has been called.\");if(this.initErrors.length>0)throw this.initErrors[0];const r=this.nextTaskID++,n=this.taskCompletion(r);n.catch(t=>{this.debug(`Task #${r} errored:`,t)});const i={id:r,run:t,cancel:()=>{-1!==this.taskQueue.indexOf(i)&&(this.taskQueue=this.taskQueue.filter(t=>t!==i),this.eventSubject.next({type:c.taskCanceled,taskID:i.id}))},then:n.then.bind(n)};if(this.taskQueue.length>=e)throw Error(\"Maximum number of pool tasks queued. Refusing to queue another one.\\nThis usually happens for one of two reasons: We are either at peak workload right now or some tasks just won't finish, thus blocking the pool.\");return this.debug(`Queueing task #${i.id}...`),this.taskQueue.push(i),this.eventSubject.next({type:c.taskQueued,taskID:i.id}),this.scheduleWork(),i}terminate(t){return h(this,void 0,void 0,(function*(){this.isClosing=!0,t||(yield this.completed(!0)),this.eventSubject.next({type:c.terminated,remainingQueue:[...this.taskQueue]}),this.eventSubject.complete(),yield Promise.all(this.workers.map(t=>h(this,void 0,void 0,(function*(){return f.a.terminate(yield t.init)}))))}))}}function y(t,e){return new p(t,e)}p.EventType=c,y.EventType=c;const g=y},function(t,e,r){\"use strict\";r.d(e,\"a\",(function(){return b})),r.d(e,\"b\",(function(){return v}));var n=r(12),i=r.n(n),o=r(26),s=r(201),a=r(13);const u=()=>{},c=t=>t,l=t=>Promise.resolve().then(t);function f(t){throw t}class h extends o.a{constructor(t){super(e=>{const r=this,n=Object.assign(Object.assign({},e),{complete(){e.complete(),r.onCompletion()},error(t){e.error(t),r.onError(t)},next(t){e.next(t),r.onNext(t)}});try{return this.initHasRun=!0,t(n)}catch(t){n.error(t)}}),this.initHasRun=!1,this.fulfillmentCallbacks=[],this.rejectionCallbacks=[],this.firstValueSet=!1,this.state=\"pending\"}onNext(t){this.firstValueSet||(this.firstValue=t,this.firstValueSet=!0)}onError(t){this.state=\"rejected\",this.rejection=t;for(const e of this.rejectionCallbacks)l(()=>e(t))}onCompletion(){this.state=\"fulfilled\";for(const t of this.fulfillmentCallbacks)l(()=>t(this.firstValue))}then(t,e){const r=t||c,n=e||f;let i=!1;return new Promise((t,e)=>{const o=r=>{if(!i){i=!0;try{t(n(r))}catch(t){e(t)}}};return this.initHasRun||this.subscribe({error:o}),\"fulfilled\"===this.state?t(r(this.firstValue)):\"rejected\"===this.state?(i=!0,t(n(this.rejection))):(this.fulfillmentCallbacks.push(e=>{try{t(r(e))}catch(t){o(t)}}),void this.rejectionCallbacks.push(o))})}catch(t){return this.then(void 0,t)}finally(t){const e=t||u;return this.then(t=>(e(),t),()=>e())}static from(t){return function(t){return t&&\"function\"==typeof t.then}(t)?new h(e=>{t.then(t=>{e.next(t),e.complete()},t=>{e.error(t)})}):super.from(t)}}var d=r(105),p=r(20);const y=i()(\"threads:master:messages\");let g=1;function m(t,e){return new o.a(r=>{let n;const i=o=>{var s;if(y(\"Message from worker:\",o.data),o.data&&o.data.uid===e)if((s=o.data)&&s.type===p.b.running)n=o.data.resultType;else if((t=>t&&t.type===p.b.result)(o.data))\"promise\"===n?(void 0!==o.data.payload&&r.next(Object(a.a)(o.data.payload)),r.complete(),t.removeEventListener(\"message\",i)):(o.data.payload&&r.next(Object(a.a)(o.data.payload)),o.data.complete&&(r.complete(),t.removeEventListener(\"message\",i)));else if((t=>t&&t.type===p.b.error)(o.data)){const e=Object(a.a)(o.data.error);r.error(e),t.removeEventListener(\"message\",i)}};return t.addEventListener(\"message\",i),()=>{if(\"observable\"===n||!n){const r={type:p.a.cancel,uid:e};t.postMessage(r)}t.removeEventListener(\"message\",i)}})}function b(t,e){return(...r)=>{const n=g++,{args:i,transferables:o}=function(t){if(0===t.length)return{args:[],transferables:[]};const e=[],r=[];for(const n of t)Object(d.a)(n)?(e.push(Object(a.b)(n.send)),r.push(...n.transferables)):e.push(Object(a.b)(n));return{args:e,transferables:0===r.length?r:(n=r,Array.from(new Set(n)))};var n}(r),u={type:p.a.run,uid:n,method:e,args:i};y(\"Sending command to run function to worker:\",u);try{t.postMessage(u,o)}catch(t){return h.from(Promise.reject(t))}return h.from(Object(s.a)(m(t,n)))}}function v(t,e){const r={};for(const n of e)r[n]=b(t,n);return r}},function(t,e){var r={}.toString;t.exports=Array.isArray||function(t){return\"[object Array]\"==r.call(t)}},function(t,e,r){\"use strict\";(function(e,n){var i=r(28);t.exports=v;var o,s=r(60);v.ReadableState=b;r(62).EventEmitter;var a=function(t,e){return t.listeners(e).length},u=r(63),c=r(43).Buffer,l=(void 0!==e?e:\"undefined\"!=typeof window?window:\"undefined\"!=typeof self?self:{}).Uint8Array||function(){};var f=Object.create(r(21));f.inherits=r(10);var h=r(115),d=void 0;d=h&&h.debuglog?h.debuglog(\"stream\"):function(){};var p,y=r(116),g=r(64);f.inherits(v,u);var m=[\"error\",\"close\",\"destroy\",\"pause\",\"resume\"];function b(t,e){t=t||{};var n=e instanceof(o=o||r(14));this.objectMode=!!t.objectMode,n&&(this.objectMode=this.objectMode||!!t.readableObjectMode);var i=t.highWaterMark,s=t.readableHighWaterMark,a=this.objectMode?16:16384;this.highWaterMark=i||0===i?i:n&&(s||0===s)?s:a,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new y,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=t.defaultEncoding||\"utf8\",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(p||(p=r(66).StringDecoder),this.decoder=new p(t.encoding),this.encoding=t.encoding)}function v(t){if(o=o||r(14),!(this instanceof v))return new v(t);this._readableState=new b(t,this),this.readable=!0,t&&(\"function\"==typeof t.read&&(this._read=t.read),\"function\"==typeof t.destroy&&(this._destroy=t.destroy)),u.call(this)}function w(t,e,r,n,i){var o,s=t._readableState;null===e?(s.reading=!1,function(t,e){if(e.ended)return;if(e.decoder){var r=e.decoder.end();r&&r.length&&(e.buffer.push(r),e.length+=e.objectMode?1:r.length)}e.ended=!0,S(t)}(t,s)):(i||(o=function(t,e){var r;n=e,c.isBuffer(n)||n instanceof l||\"string\"==typeof e||void 0===e||t.objectMode||(r=new TypeError(\"Invalid non-string/buffer chunk\"));var n;return r}(s,e)),o?t.emit(\"error\",o):s.objectMode||e&&e.length>0?(\"string\"==typeof e||s.objectMode||Object.getPrototypeOf(e)===c.prototype||(e=function(t){return c.from(t)}(e)),n?s.endEmitted?t.emit(\"error\",new Error(\"stream.unshift() after end event\")):x(t,s,e,!0):s.ended?t.emit(\"error\",new Error(\"stream.push() after EOF\")):(s.reading=!1,s.decoder&&!r?(e=s.decoder.write(e),s.objectMode||0!==e.length?x(t,s,e,!1):E(t,s)):x(t,s,e,!1))):n||(s.reading=!1));return function(t){return!t.ended&&(t.needReadable||t.lengthe.highWaterMark&&(e.highWaterMark=function(t){return t>=8388608?t=8388608:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}function S(t){var e=t._readableState;e.needReadable=!1,e.emittedReadable||(d(\"emitReadable\",e.flowing),e.emittedReadable=!0,e.sync?i.nextTick(A,t):A(t))}function A(t){d(\"emit readable\"),t.emit(\"readable\"),C(t)}function E(t,e){e.readingMore||(e.readingMore=!0,i.nextTick(k,t,e))}function k(t,e){for(var r=e.length;!e.reading&&!e.flowing&&!e.ended&&e.length=e.length?(r=e.decoder?e.buffer.join(\"\"):1===e.buffer.length?e.buffer.head.data:e.buffer.concat(e.length),e.buffer.clear()):r=function(t,e,r){var n;to.length?o.length:t;if(s===o.length?i+=o:i+=o.slice(0,t),0===(t-=s)){s===o.length?(++n,r.next?e.head=r.next:e.head=e.tail=null):(e.head=r,r.data=o.slice(s));break}++n}return e.length-=n,i}(t,e):function(t,e){var r=c.allocUnsafe(t),n=e.head,i=1;n.data.copy(r),t-=n.data.length;for(;n=n.next;){var o=n.data,s=t>o.length?o.length:t;if(o.copy(r,r.length-t,0,s),0===(t-=s)){s===o.length?(++i,n.next?e.head=n.next:e.head=e.tail=null):(e.head=n,n.data=o.slice(s));break}++i}return e.length-=i,r}(t,e);return n}(t,e.buffer,e.decoder),r);var r}function I(t){var e=t._readableState;if(e.length>0)throw new Error('\"endReadable()\" called on non-empty stream');e.endEmitted||(e.ended=!0,i.nextTick(R,e,t))}function R(t,e){t.endEmitted||0!==t.length||(t.endEmitted=!0,e.readable=!1,e.emit(\"end\"))}function j(t,e){for(var r=0,n=t.length;r=e.highWaterMark||e.ended))return d(\"read: emitReadable\",e.length,e.ended),0===e.length&&e.ended?I(this):S(this),null;if(0===(t=_(t,e))&&e.ended)return 0===e.length&&I(this),null;var n,i=e.needReadable;return d(\"need readable\",i),(0===e.length||e.length-t0?P(t,e):null)?(e.needReadable=!0,t=0):e.length-=t,0===e.length&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&I(this)),null!==n&&this.emit(\"data\",n),n},v.prototype._read=function(t){this.emit(\"error\",new Error(\"_read() is not implemented\"))},v.prototype.pipe=function(t,e){var r=this,o=this._readableState;switch(o.pipesCount){case 0:o.pipes=t;break;case 1:o.pipes=[o.pipes,t];break;default:o.pipes.push(t)}o.pipesCount+=1,d(\"pipe count=%d opts=%j\",o.pipesCount,e);var u=(!e||!1!==e.end)&&t!==n.stdout&&t!==n.stderr?l:v;function c(e,n){d(\"onunpipe\"),e===r&&n&&!1===n.hasUnpiped&&(n.hasUnpiped=!0,d(\"cleanup\"),t.removeListener(\"close\",m),t.removeListener(\"finish\",b),t.removeListener(\"drain\",f),t.removeListener(\"error\",g),t.removeListener(\"unpipe\",c),r.removeListener(\"end\",l),r.removeListener(\"end\",v),r.removeListener(\"data\",y),h=!0,!o.awaitDrain||t._writableState&&!t._writableState.needDrain||f())}function l(){d(\"onend\"),t.end()}o.endEmitted?i.nextTick(u):r.once(\"end\",u),t.on(\"unpipe\",c);var f=function(t){return function(){var e=t._readableState;d(\"pipeOnDrain\",e.awaitDrain),e.awaitDrain&&e.awaitDrain--,0===e.awaitDrain&&a(t,\"data\")&&(e.flowing=!0,C(t))}}(r);t.on(\"drain\",f);var h=!1;var p=!1;function y(e){d(\"ondata\"),p=!1,!1!==t.write(e)||p||((1===o.pipesCount&&o.pipes===t||o.pipesCount>1&&-1!==j(o.pipes,t))&&!h&&(d(\"false write response, pause\",o.awaitDrain),o.awaitDrain++,p=!0),r.pause())}function g(e){d(\"onerror\",e),v(),t.removeListener(\"error\",g),0===a(t,\"error\")&&t.emit(\"error\",e)}function m(){t.removeListener(\"finish\",b),v()}function b(){d(\"onfinish\"),t.removeListener(\"close\",m),v()}function v(){d(\"unpipe\"),r.unpipe(t)}return r.on(\"data\",y),function(t,e,r){if(\"function\"==typeof t.prependListener)return t.prependListener(e,r);t._events&&t._events[e]?s(t._events[e])?t._events[e].unshift(r):t._events[e]=[r,t._events[e]]:t.on(e,r)}(t,\"error\",g),t.once(\"close\",m),t.once(\"finish\",b),t.emit(\"pipe\",r),o.flowing||(d(\"pipe resume\"),r.resume()),t},v.prototype.unpipe=function(t){var e=this._readableState,r={hasUnpiped:!1};if(0===e.pipesCount)return this;if(1===e.pipesCount)return t&&t!==e.pipes||(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit(\"unpipe\",this,r)),this;if(!t){var n=e.pipes,i=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var o=0;o0&&s.length>i&&!s.warned){s.warned=!0;var u=new Error(\"Possible EventEmitter memory leak detected. \"+s.length+\" \"+String(e)+\" listeners added. Use emitter.setMaxListeners() to increase limit\");u.name=\"MaxListenersExceededWarning\",u.emitter=t,u.type=e,u.count=s.length,a=u,console&&console.warn&&console.warn(a)}return t}function h(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function d(t,e,r){var n={fired:!1,wrapFn:void 0,target:t,type:e,listener:r},i=h.bind(n);return i.listener=r,n.wrapFn=i,i}function p(t,e,r){var n=t._events;if(void 0===n)return[];var i=n[e];return void 0===i?[]:\"function\"==typeof i?r?[i.listener||i]:[i]:r?function(t){for(var e=new Array(t.length),r=0;r0&&(s=e[0]),s instanceof Error)throw s;var a=new Error(\"Unhandled error.\"+(s?\" (\"+s.message+\")\":\"\"));throw a.context=s,a}var u=i[t];if(void 0===u)return!1;if(\"function\"==typeof u)o(u,this,e);else{var c=u.length,l=g(u,c);for(r=0;r=0;o--)if(r[o]===e||r[o].listener===e){s=r[o].listener,i=o;break}if(i<0)return this;0===i?r.shift():function(t,e){for(;e+1=0;n--)this.removeListener(t,e[n]);return this},a.prototype.listeners=function(t){return p(this,t,!0)},a.prototype.rawListeners=function(t){return p(this,t,!1)},a.listenerCount=function(t,e){return\"function\"==typeof t.listenerCount?t.listenerCount(e):y.call(t,e)},a.prototype.listenerCount=y,a.prototype.eventNames=function(){return this._eventsCount>0?n(this._events):[]}},function(t,e,r){t.exports=r(62).EventEmitter},function(t,e,r){\"use strict\";var n=r(28);function i(t,e){t.emit(\"error\",e)}t.exports={destroy:function(t,e){var r=this,o=this._readableState&&this._readableState.destroyed,s=this._writableState&&this._writableState.destroyed;return o||s?(e?e(t):t&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,n.nextTick(i,this,t)):n.nextTick(i,this,t)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(t||null,(function(t){!e&&t?r._writableState?r._writableState.errorEmitted||(r._writableState.errorEmitted=!0,n.nextTick(i,r,t)):n.nextTick(i,r,t):e&&e(t)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},function(t,e,r){\"use strict\";(function(e,n,i){var o=r(28);function s(t){var e=this;this.next=null,this.entry=null,this.finish=function(){!function(t,e,r){var n=t.entry;t.entry=null;for(;n;){var i=n.callback;e.pendingcb--,i(r),n=n.next}e.corkedRequestsFree.next=t}(e,t)}}t.exports=b;var a,u=!e.browser&&[\"v0.10\",\"v0.9.\"].indexOf(e.version.slice(0,5))>-1?n:o.nextTick;b.WritableState=m;var c=Object.create(r(21));c.inherits=r(10);var l={deprecate:r(120)},f=r(63),h=r(43).Buffer,d=(void 0!==i?i:\"undefined\"!=typeof window?window:\"undefined\"!=typeof self?self:{}).Uint8Array||function(){};var p,y=r(64);function g(){}function m(t,e){a=a||r(14),t=t||{};var n=e instanceof a;this.objectMode=!!t.objectMode,n&&(this.objectMode=this.objectMode||!!t.writableObjectMode);var i=t.highWaterMark,c=t.writableHighWaterMark,l=this.objectMode?16:16384;this.highWaterMark=i||0===i?i:n&&(c||0===c)?c:l,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var f=!1===t.decodeStrings;this.decodeStrings=!f,this.defaultEncoding=t.defaultEncoding||\"utf8\",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(t){!function(t,e){var r=t._writableState,n=r.sync,i=r.writecb;if(function(t){t.writing=!1,t.writecb=null,t.length-=t.writelen,t.writelen=0}(r),e)!function(t,e,r,n,i){--e.pendingcb,r?(o.nextTick(i,n),o.nextTick(A,t,e),t._writableState.errorEmitted=!0,t.emit(\"error\",n)):(i(n),t._writableState.errorEmitted=!0,t.emit(\"error\",n),A(t,e))}(t,r,n,e,i);else{var s=_(r);s||r.corked||r.bufferProcessing||!r.bufferedRequest||x(t,r),n?u(w,t,r,s,i):w(t,r,s,i)}}(e,t)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new s(this)}function b(t){if(a=a||r(14),!(p.call(b,this)||this instanceof a))return new b(t);this._writableState=new m(t,this),this.writable=!0,t&&(\"function\"==typeof t.write&&(this._write=t.write),\"function\"==typeof t.writev&&(this._writev=t.writev),\"function\"==typeof t.destroy&&(this._destroy=t.destroy),\"function\"==typeof t.final&&(this._final=t.final)),f.call(this)}function v(t,e,r,n,i,o,s){e.writelen=n,e.writecb=s,e.writing=!0,e.sync=!0,r?t._writev(i,e.onwrite):t._write(i,o,e.onwrite),e.sync=!1}function w(t,e,r,n){r||function(t,e){0===e.length&&e.needDrain&&(e.needDrain=!1,t.emit(\"drain\"))}(t,e),e.pendingcb--,n(),A(t,e)}function x(t,e){e.bufferProcessing=!0;var r=e.bufferedRequest;if(t._writev&&r&&r.next){var n=e.bufferedRequestCount,i=new Array(n),o=e.corkedRequestsFree;o.entry=r;for(var a=0,u=!0;r;)i[a]=r,r.isBuf||(u=!1),r=r.next,a+=1;i.allBuffers=u,v(t,e,!0,e.length,i,\"\",o.finish),e.pendingcb++,e.lastBufferedRequest=null,o.next?(e.corkedRequestsFree=o.next,o.next=null):e.corkedRequestsFree=new s(e),e.bufferedRequestCount=0}else{for(;r;){var c=r.chunk,l=r.encoding,f=r.callback;if(v(t,e,!1,e.objectMode?1:c.length,c,l,f),r=r.next,e.bufferedRequestCount--,e.writing)break}null===r&&(e.lastBufferedRequest=null)}e.bufferedRequest=r,e.bufferProcessing=!1}function _(t){return t.ending&&0===t.length&&null===t.bufferedRequest&&!t.finished&&!t.writing}function S(t,e){t._final((function(r){e.pendingcb--,r&&t.emit(\"error\",r),e.prefinished=!0,t.emit(\"prefinish\"),A(t,e)}))}function A(t,e){var r=_(e);return r&&(!function(t,e){e.prefinished||e.finalCalled||(\"function\"==typeof t._final?(e.pendingcb++,e.finalCalled=!0,o.nextTick(S,t,e)):(e.prefinished=!0,t.emit(\"prefinish\")))}(t,e),0===e.pendingcb&&(e.finished=!0,t.emit(\"finish\"))),r}c.inherits(b,f),m.prototype.getBuffer=function(){for(var t=this.bufferedRequest,e=[];t;)e.push(t),t=t.next;return e},function(){try{Object.defineProperty(m.prototype,\"buffer\",{get:l.deprecate((function(){return this.getBuffer()}),\"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.\",\"DEP0003\")})}catch(t){}}(),\"function\"==typeof Symbol&&Symbol.hasInstance&&\"function\"==typeof Function.prototype[Symbol.hasInstance]?(p=Function.prototype[Symbol.hasInstance],Object.defineProperty(b,Symbol.hasInstance,{value:function(t){return!!p.call(this,t)||this===b&&(t&&t._writableState instanceof m)}})):p=function(t){return t instanceof this},b.prototype.pipe=function(){this.emit(\"error\",new Error(\"Cannot pipe, not readable\"))},b.prototype.write=function(t,e,r){var n,i=this._writableState,s=!1,a=!i.objectMode&&(n=t,h.isBuffer(n)||n instanceof d);return a&&!h.isBuffer(t)&&(t=function(t){return h.from(t)}(t)),\"function\"==typeof e&&(r=e,e=null),a?e=\"buffer\":e||(e=i.defaultEncoding),\"function\"!=typeof r&&(r=g),i.ended?function(t,e){var r=new Error(\"write after end\");t.emit(\"error\",r),o.nextTick(e,r)}(this,r):(a||function(t,e,r,n){var i=!0,s=!1;return null===r?s=new TypeError(\"May not write null values to stream\"):\"string\"==typeof r||void 0===r||e.objectMode||(s=new TypeError(\"Invalid non-string/buffer chunk\")),s&&(t.emit(\"error\",s),o.nextTick(n,s),i=!1),i}(this,i,t,r))&&(i.pendingcb++,s=function(t,e,r,n,i,o){if(!r){var s=function(t,e,r){t.objectMode||!1===t.decodeStrings||\"string\"!=typeof e||(e=h.from(e,r));return e}(e,n,i);n!==s&&(r=!0,i=\"buffer\",n=s)}var a=e.objectMode?1:n.length;e.length+=a;var u=e.length-1))throw new TypeError(\"Unknown encoding: \"+t);return this._writableState.defaultEncoding=t,this},Object.defineProperty(b.prototype,\"writableHighWaterMark\",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),b.prototype._write=function(t,e,r){r(new Error(\"_write() is not implemented\"))},b.prototype._writev=null,b.prototype.end=function(t,e,r){var n=this._writableState;\"function\"==typeof t?(r=t,t=null,e=null):\"function\"==typeof e&&(r=e,e=null),null!=t&&this.write(t,e),n.corked&&(n.corked=1,this.uncork()),n.ending||function(t,e,r){e.ending=!0,A(t,e),r&&(e.finished?o.nextTick(r):t.once(\"finish\",r));e.ended=!0,t.writable=!1}(this,n,r)},Object.defineProperty(b.prototype,\"destroyed\",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(t){this._writableState&&(this._writableState.destroyed=t)}}),b.prototype.destroy=y.destroy,b.prototype._undestroy=y.undestroy,b.prototype._destroy=function(t,e){this.end(),e(t)}}).call(this,r(8),r(118).setImmediate,r(3))},function(t,e,r){\"use strict\";var n=r(121).Buffer,i=n.isEncoding||function(t){switch((t=\"\"+t)&&t.toLowerCase()){case\"hex\":case\"utf8\":case\"utf-8\":case\"ascii\":case\"binary\":case\"base64\":case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":case\"raw\":return!0;default:return!1}};function o(t){var e;switch(this.encoding=function(t){var e=function(t){if(!t)return\"utf8\";for(var e;;)switch(t){case\"utf8\":case\"utf-8\":return\"utf8\";case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return\"utf16le\";case\"latin1\":case\"binary\":return\"latin1\";case\"base64\":case\"ascii\":case\"hex\":return t;default:if(e)return;t=(\"\"+t).toLowerCase(),e=!0}}(t);if(\"string\"!=typeof e&&(n.isEncoding===i||!i(t)))throw new Error(\"Unknown encoding: \"+t);return e||t}(t),this.encoding){case\"utf16le\":this.text=u,this.end=c,e=4;break;case\"utf8\":this.fillLast=a,e=4;break;case\"base64\":this.text=l,this.end=f,e=3;break;default:return this.write=h,void(this.end=d)}this.lastNeed=0,this.lastTotal=0,this.lastChar=n.allocUnsafe(e)}function s(t){return t<=127?0:t>>5==6?2:t>>4==14?3:t>>3==30?4:-1}function a(t){var e=this.lastTotal-this.lastNeed,r=function(t,e,r){if(128!=(192&e[0]))return t.lastNeed=0,\"�\".repeat(r);if(t.lastNeed>1&&e.length>1){if(128!=(192&e[1]))return t.lastNeed=1,\"�\".repeat(r+1);if(t.lastNeed>2&&e.length>2&&128!=(192&e[2]))return t.lastNeed=2,\"�\".repeat(r+2)}}(this,t,e);return void 0!==r?r:this.lastNeed<=t.length?(t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(t.copy(this.lastChar,e,0,t.length),void(this.lastNeed-=t.length))}function u(t,e){if((t.length-e)%2==0){var r=t.toString(\"utf16le\",e);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString(\"utf16le\",e,t.length-1)}function c(t){var e=t&&t.length?this.write(t):\"\";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return e+this.lastChar.toString(\"utf16le\",0,r)}return e}function l(t,e){var r=(t.length-e)%3;return 0===r?t.toString(\"base64\",e):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString(\"base64\",e,t.length-r))}function f(t){var e=t&&t.length?this.write(t):\"\";return this.lastNeed?e+this.lastChar.toString(\"base64\",0,3-this.lastNeed):e}function h(t){return t.toString(this.encoding)}function d(t){return t&&t.length?this.write(t):\"\"}e.StringDecoder=o,o.prototype.write=function(t){if(0===t.length)return\"\";var e,r;if(this.lastNeed){if(void 0===(e=this.fillLast(t)))return\"\";r=this.lastNeed,this.lastNeed=0}else r=0;return r=0)return i>0&&(t.lastNeed=i-1),i;if(--n=0)return i>0&&(t.lastNeed=i-2),i;if(--n=0)return i>0&&(2===i?i=0:t.lastNeed=i-3),i;return 0}(this,t,e);if(!this.lastNeed)return t.toString(\"utf8\",e);this.lastTotal=r;var n=t.length-(r-this.lastNeed);return t.copy(this.lastChar,0,n),t.toString(\"utf8\",e,n)},o.prototype.fillLast=function(t){if(this.lastNeed<=t.length)return t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,t.length),this.lastNeed-=t.length}},function(t,e,r){\"use strict\";t.exports=s;var n=r(14),i=Object.create(r(21));function o(t,e){var r=this._transformState;r.transforming=!1;var n=r.writecb;if(!n)return this.emit(\"error\",new Error(\"write callback called multiple times\"));r.writechunk=null,r.writecb=null,null!=e&&this.push(e),n(t);var i=this._readableState;i.reading=!1,(i.needReadable||i.lengthObject(o.a)(r),e)}async decode(t,e){return new Promise((r,n)=>{this.pool.queue(async i=>{try{const n=await i(t,e);r(n)}catch(t){n(t)}})})}destroy(){this.pool.terminate(!0)}}}).call(this,r(133))},function(t,e,r){(function(t){e.fetch=a(t.fetch)&&a(t.ReadableStream),e.writableStream=a(t.WritableStream),e.abortController=a(t.AbortController),e.blobConstructor=!1;try{new Blob([new ArrayBuffer(1)]),e.blobConstructor=!0}catch(t){}var r;function n(){if(void 0!==r)return r;if(t.XMLHttpRequest){r=new t.XMLHttpRequest;try{r.open(\"GET\",t.XDomainRequest?\"/\":\"https://example.com\")}catch(t){r=null}}else r=null;return r}function i(t){var e=n();if(!e)return!1;try{return e.responseType=t,e.responseType===t}catch(t){}return!1}var o=void 0!==t.ArrayBuffer,s=o&&a(t.ArrayBuffer.prototype.slice);function a(t){return\"function\"==typeof t}e.arraybuffer=e.fetch||o&&i(\"arraybuffer\"),e.msstream=!e.fetch&&s&&i(\"ms-stream\"),e.mozchunkedarraybuffer=!e.fetch&&o&&i(\"moz-chunked-arraybuffer\"),e.overrideMimeType=e.fetch||!!n()&&a(n().overrideMimeType),e.vbArray=a(t.VBArray),r=null}).call(this,r(3))},function(t,e,r){(function(t,n,i){var o=r(69),s=r(10),a=r(42),u=e.readyStates={UNSENT:0,OPENED:1,HEADERS_RECEIVED:2,LOADING:3,DONE:4},c=e.IncomingMessage=function(e,r,s,u){var c=this;if(a.Readable.call(c),c._mode=s,c.headers={},c.rawHeaders=[],c.trailers={},c.rawTrailers=[],c.on(\"end\",(function(){t.nextTick((function(){c.emit(\"close\")}))})),\"fetch\"===s){if(c._fetchResponse=r,c.url=r.url,c.statusCode=r.status,c.statusMessage=r.statusText,r.headers.forEach((function(t,e){c.headers[e.toLowerCase()]=t,c.rawHeaders.push(e,t)})),o.writableStream){var l=new WritableStream({write:function(t){return new Promise((function(e,r){c._destroyed?r():c.push(new n(t))?e():c._resumeFetch=e}))},close:function(){i.clearTimeout(u),c._destroyed||c.push(null)},abort:function(t){c._destroyed||c.emit(\"error\",t)}});try{return void r.body.pipeTo(l).catch((function(t){i.clearTimeout(u),c._destroyed||c.emit(\"error\",t)}))}catch(t){}}var f=r.body.getReader();!function t(){f.read().then((function(e){if(!c._destroyed){if(e.done)return i.clearTimeout(u),void c.push(null);c.push(new n(e.value)),t()}})).catch((function(t){i.clearTimeout(u),c._destroyed||c.emit(\"error\",t)}))}()}else{if(c._xhr=e,c._pos=0,c.url=e.responseURL,c.statusCode=e.status,c.statusMessage=e.statusText,e.getAllResponseHeaders().split(/\\r?\\n/).forEach((function(t){var e=t.match(/^([^:]+):\\s*(.*)/);if(e){var r=e[1].toLowerCase();\"set-cookie\"===r?(void 0===c.headers[r]&&(c.headers[r]=[]),c.headers[r].push(e[2])):void 0!==c.headers[r]?c.headers[r]+=\", \"+e[2]:c.headers[r]=e[2],c.rawHeaders.push(e[1],e[2])}})),c._charset=\"x-user-defined\",!o.overrideMimeType){var h=c.rawHeaders[\"mime-type\"];if(h){var d=h.match(/;\\s*charset=([^;])(;|$)/);d&&(c._charset=d[1].toLowerCase())}c._charset||(c._charset=\"utf-8\")}}};s(c,a.Readable),c.prototype._read=function(){var t=this._resumeFetch;t&&(this._resumeFetch=null,t())},c.prototype._onXHRProgress=function(){var t=this,e=t._xhr,r=null;switch(t._mode){case\"text:vbarray\":if(e.readyState!==u.DONE)break;try{r=new i.VBArray(e.responseBody).toArray()}catch(t){}if(null!==r){t.push(new n(r));break}case\"text\":try{r=e.responseText}catch(e){t._mode=\"text:vbarray\";break}if(r.length>t._pos){var o=r.substr(t._pos);if(\"x-user-defined\"===t._charset){for(var s=new n(o.length),a=0;at._pos&&(t.push(new n(new Uint8Array(c.result.slice(t._pos)))),t._pos=c.result.byteLength)},c.onload=function(){t.push(null)},c.readAsArrayBuffer(r)}t._xhr.readyState===u.DONE&&\"ms-stream\"!==t._mode&&t.push(null)}}).call(this,r(8),r(7).Buffer,r(3))},function(t,e,r){\"use strict\";var n=r(46),i=Object.prototype.hasOwnProperty,o=Array.isArray,s=function(){for(var t=[],e=0;e<256;++e)t.push(\"%\"+((e<16?\"0\":\"\")+e.toString(16)).toUpperCase());return t}(),a=function(t,e){for(var r=e&&e.plainObjects?Object.create(null):{},n=0;n1;){var e=t.pop(),r=e.obj[e.prop];if(o(r)){for(var n=[],i=0;i=48&&l<=57||l>=65&&l<=90||l>=97&&l<=122||o===n.RFC1738&&(40===l||41===l)?u+=a.charAt(c):l<128?u+=s[l]:l<2048?u+=s[192|l>>6]+s[128|63&l]:l<55296||l>=57344?u+=s[224|l>>12]+s[128|l>>6&63]+s[128|63&l]:(c+=1,l=65536+((1023&l)<<10|1023&a.charCodeAt(c)),u+=s[240|l>>18]+s[128|l>>12&63]+s[128|l>>6&63]+s[128|63&l])}return u},isBuffer:function(t){return!(!t||\"object\"!=typeof t)&&!!(t.constructor&&t.constructor.isBuffer&&t.constructor.isBuffer(t))},isRegExp:function(t){return\"[object RegExp]\"===Object.prototype.toString.call(t)},maybeMap:function(t,e){if(o(t)){for(var r=[],n=0;ne++t.next());return e.every(({done:t})=>t)?{done:!0}:{done:!1,value:e.map(({value:t})=>t)}}))}}},function(t,e,r){\"use strict\";function n(t){\"+\"===t[0]&&(t=t.substring(1));const e=\"-\"===t[0]?\"-\":\"\";\"-\"===e&&(t=t.substring(1));const r=t.indexOf(\"e\");if(-1===r)return e+t;let n=t.indexOf(\".\");-1===n&&(n=r);const i=Number(t.substring(r+1)),o=t.substring(0,r).replace(\".\",\"\"),s=n+i,a=o.length;if(s>=a){const t=s-a;let r=o;for(let e=0;es;e--)t+=\"0\";return t+=o,e+t}return e+o.substring(0,s)+\".\"+o.substring(s)}t.exports=n,t.exports.default=n},function(t,e,r){\"use strict\";t.exports={MAX_SAFE_INTEGER:9007199254740991}},function(t,e,r){\"use strict\";const n=r(47);function i(t){return\"0\"===t?\"1\":n(\"1\",t)}t.exports=i,t.exports.default=i},function(t,e,r){\"use strict\";const n=r(4),i=r(0),o=r(9),s=r(22);function a(t){if(-1===(t=i(t)).indexOf(\".\"))return t;const e=s(t);return t=n(t).split(\".\")[0],\"+\"===e?o(t,\"1\"):\"-\"===e?\"0\"===t||\"\"===t?\"0\":\"-\"+t:void 0}t.exports=a,t.exports.default=a},function(t,e,r){\"use strict\";const n=r(51);function i(t){const e=n(t);return[t.replace(/\\./g,\"\").replace(/^0/,\"\"),1+\"0\".repeat(e)]}t.exports=i,t.exports.default=i},function(t,e,r){const n=r(0),i=r(16);function o(t){if(t=n(t),!i(t))throw new Error(\"can't call is_odd on decimal\");return[\"1\",\"3\",\"5\",\"7\",\"9\"].includes(t.charAt(t.length-1))}t.exports=o,t.exports.default=o},function(t,e,r){\"use strict\";const n=r(52),i=r(15),o=r(78),s=r(11),a=r(17),u=r(50);function c(t,{max_decimal_digits:e,infinity_times_zero:r=\"NaN\"}={}){const c=t.some(t=>i(t)),l=t.some(t=>s(t));if(c&&l)return r;if(c){return t.filter(t=>\"-\"===u(t)).length%2==0?\"Infinity\":\"-Infinity\"}if(l)return\"0\";const f=o(t.filter(t=>n(t)).length.toString());let h=a(t.map(t=>t.replace(/i$/,\"\")),{max_decimal_digits:e});return f&&(h+=\"i\"),h}t.exports=c,t.exports.default=c},function(t,e,r){\"use strict\";const n=r(0);function i(t){return\"-\"===(t=n(t))[0]}t.exports=i,t.exports.default=i},function(t,e,r){\"use strict\";const n=r(1),i=r(165),o=r(166);function s(t,{max_decimal_digits:e=100,fraction:r=!1}={}){if(i(t)){const[i,s]=o(t);return r?s+\"/\"+i:n(s,i,{max_decimal_digits:e})}return r?\"1/\"+t:n(\"1\",t,{max_decimal_digits:e})}t.exports=s,t.exports.default=s},function(t,e,r){\"use strict\";const n=r(0),i=r(16);function o(t){if(t=n(t),!i(t))throw new Error(\"can't call is_even on decimal\");return[\"0\",\"2\",\"4\",\"6\",\"8\"].includes(t.charAt(t.length-1))}t.exports=o,t.exports.default=o},function(t,e,r){\"use strict\";const n=r(76),i=r(84),o=r(1);function s(t,e){const r=i(t);return\"0\"===r?\"0\":n(o(r,e,{max_decimal_digits:1}))}t.exports=s,t.exports.default=s},function(t,e,r){\"use strict\";const n=r(4),i=r(0);function o(t){const e=(t=n(i(t))).indexOf(\".\");return(-1===e?t.length:e).toString()}t.exports=o,t.exports.default=o},function(t,e,r){\"use strict\";const n=r(1),i=r(82),o=r(86),s=r(87);function a(t,e){const r=s(\"2\",o([\"1000\",e,e]));for(;t.endsWith(\"0\")&&e.endsWith(\"0\");)t=t.substring(0,t.length-1),e=e.substring(0,e.length-1);for(;i(t)&&i(e);)t=n(t,\"2\"),e=n(e,\"2\");let a=!0;for(;a;){a=!1;for(let i=0;i\"<\"!==n(r,t)&&\">\"!==n(r,e));let a=\"13\";for(;\">\"!==n(a,e);)/^\\d+5/.test(a)||/^(\\d)\\1+/.test(a)||[\"9\",\"7\",\"3\"].every(t=>!o(i(a,t)))&&r.push(a),a=s(a,\"2\");return r}t.exports=a,t.exports.default=a},function(t,e,r){\"use strict\";const n=r(6),i=r(1);function o({max_decimal_digits:t=100,steps:e=100}={}){let r=\"1\",o=\"1\";for(let s=1;s\":return\"-\"+s(t,e)}else if(r&&!a)switch(e=e.substring(1),n(t,e)){case\"=\":return\"0\";case\"<\":return\"-\"+s(e,t);case\">\":return s(t,e)}}t.exports=a,t.exports.default=a},function(t,e,r){const{MAX_SAFE_INTEGER_LENGTH:n}=r(56);t.exports=function(t,e){const r=t.length,i=e.length,o=t.indexOf(\".\"),s=e.indexOf(\".\"),a=-1===o?r:o,u=-1===s?i:s;if(-1===o&&-1===s&&r0){for(;m>p-f;){const r=t[m-h]||\"0\",n=e[m-d]||\"0\";let i=Number(r)+Number(n)+g;i>=10?(i-=10,g=1):g=0,\"\"===y&&0===i||(y=i+y),m--}y&&(y=\".\"+y),m--}if(l>0)for(;m>=0;){const r=t[m-h]||\"0\",n=e[m-d]||\"0\";let i=Number(r)+Number(n)+g;i>=10?(i-=10,g=1):g=0,y=i+y,m--}return 1===g&&(y=g+y),\".\"===y[0]&&(y=\"0\"+y),y}},function(t,e,r){const{MAX_SAFE_INTEGER_LENGTH:n}=r(56);t.exports=function(t,e){const r=t.length,i=e.length,o=t.indexOf(\".\"),s=e.indexOf(\".\"),a=-1===o?r:o,u=-1===s?i:s;if(-1===o&&-1===s&&r0){for(;m>p-f;){let r=t[m-h]||\"0\",n=e[m-d]||\"0\";r-=g,g=0;let i=r-n;if(i<0)for(;i<0;)g++,i+=10;else g&&g--;\"\"===y&&0===i||(y=i+y),m--}\"\"!==y&&(y=\".\"+y),m--}if(l>0){for(;m>0;){let r=t[m-h]||\"0\",n=e[m-d]||\"0\";r-=g,g=0;let i=r-n;if(i<0)for(;i<0;)g++,i+=10;else g&&g--;y=i+y,m--}const r=t[0-h]||\"0\",n=e[0-d]||\"0\";let i=Number(r)-(g>0?1:0)-Number(n);0!==i&&(y=i+y),y=y.replace(/^0+/,\"\")}return\".\"===y[0]&&(y=\"0\"+y),y}},function(t,e,r){const n=r(18);function i(t){return\"-\"===(t=n(t))[0]?t.substring(1):t}t.exports=i,t.exports.default=i},function(t,e,r){\"use strict\";t.exports={countIn1D:function(t){return t.reduce((function(t,e){return void 0===t[e]?t[e]=1:t[e]++,t}),{})},countIn2D:function(t){return t.reduce((function(t,e){return e.forEach((function(e){void 0===t[e]?t[e]=1:t[e]++})),t}),{})},unflatten:function(t,e){for(var r=e.height,n=e.width,i=[],o=0;o>24)/500+a,c=a-(t[e+2]<<24>>24)/200;u=.95047*(u*u*u>.008856?u*u*u:(u-16/116)/7.787),a=1*(a*a*a>.008856?a*a*a:(a-16/116)/7.787),c=1.08883*(c*c*c>.008856?c*c*c:(c-16/116)/7.787),i=3.2406*u+-1.5372*a+-.4986*c,o=-.9689*u+1.8758*a+.0415*c,s=.0557*u+-.204*a+1.057*c,i=i>.0031308?1.055*i**(1/2.4)-.055:12.92*i,o=o>.0031308?1.055*o**(1/2.4)-.055:12.92*o,s=s>.0031308?1.055*s**(1/2.4)-.055:12.92*s,n[r]=255*Math.max(0,Math.min(1,i)),n[r+1]=255*Math.max(0,Math.min(1,o)),n[r+2]=255*Math.max(0,Math.min(1,s))}return n}function S(t,e){let r=t.length-e,n=0;do{for(let r=e;r>0;r--)t[n+e]+=t[n],n++;r-=e}while(r>0)}function A(t,e,r){let n=0,i=t.length;const o=i/r;for(;i>e;){for(let r=e;r>0;--r)t[n+e]+=t[n],++n;i-=e}const s=t.slice();for(let e=0;e=t.byteLength);++o){let n;if(2===e){switch(i[0]){case 8:n=new Uint8Array(t,o*a*r*s,a*r*s);break;case 16:n=new Uint16Array(t,o*a*r*s,a*r*s/2);break;case 32:n=new Uint32Array(t,o*a*r*s,a*r*s/4);break;default:throw new Error(`Predictor 2 not allowed with ${i[0]} bits per sample.`)}S(n,a)}else 3===e&&(n=new Uint8Array(t,o*a*r*s,a*r*s),A(n,a,s))}return t}(r,n,e?t.TileWidth:t.ImageWidth,e?t.TileLength:t.RowsPerStrip||t.ImageLength,t.BitsPerSample,t.PlanarConfiguration)}return r}}class k extends E{decodeBlock(t){return t}}function T(t,e){for(let r=e.length-1;r>=0;r--)t.push(e[r]);return t}function O(t){const e=new Uint16Array(4093),r=new Uint8Array(4093);for(let t=0;t<=257;t++)e[t]=4096,r[t]=t;let n=258,i=9,o=0;function s(){n=258,i=9}function a(t){const e=function(t,e,r){const n=e%8,i=Math.floor(e/8),o=8-n,s=e+r-8*(i+1);let a=8*(i+2)-(e+r);const u=8*(i+2)-e;if(a=Math.max(0,a),i>=t.length)return console.warn(\"ran off the end of the buffer before finding EOI_CODE (end on input code)\"),257;let c=t[i]&2**(8-n)-1;c<<=r-o;let l=c;if(i+1>>a;e<<=Math.max(0,r-u),l+=e}if(s>8&&i+2>>n}return l}(t,o,i);return o+=i,e}function u(t,i){return r[n]=i,e[n]=t,n++,n-1}function c(t){const n=[];for(let i=t;4096!==i;i=e[i])n.push(r[i]);return n}const l=[];s();const f=new Uint8Array(t);let h,d=a(f);for(;257!==d;){if(256===d){for(s(),d=a(f);256===d;)d=a(f);if(257===d)break;if(d>256)throw new Error(\"corrupted code at scanline \"+d);T(l,c(d)),h=d}else if(d=2**i&&(12===i?h=void 0:i++),d=a(f)}return new Uint8Array(l)}class C extends E{decodeBlock(t){return O(t).buffer}}const P=new Int32Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]);function I(t,e){let r=0;const n=[];let i=16;for(;i>0&&!t[i-1];)--i;n.push({children:[],index:0});let o,s=n[0];for(let a=0;a0;)s=n.pop();for(s.index++,n.push(s);n.length<=a;)n.push(o={children:[],index:0}),s.children[s.index]=o.children,s=o;r++}a+10)return p--,d>>p&1;if(d=t[h++],255===d){const e=t[h++];if(e)throw new Error(\"unexpected marker: \"+(d<<8|e).toString(16))}return p=7,d>>>7}function g(t){let e,r=t;for(;null!==(e=y());){if(r=r[e],\"number\"==typeof r)return r;if(\"object\"!=typeof r)throw new Error(\"invalid huffman sequence\")}return null}function m(t){let e=t,r=0;for(;e>0;){const t=y();if(null===t)return;r=r<<1|t,--e}return r}function b(t){const e=m(t);return e>=1<0)return void v--;let r=o;const n=s;for(;r<=n;){const n=g(t.huffmanTableAC),i=15&n,o=n>>4;if(0===i){if(o<15){v=m(o)+(1<>4,0===r)i<15?(v=m(i)+(1<>4;if(0===n){if(o<15)break;i+=16}else{i+=o;e[P[i]]=b(n),i++}}};let R,j,M=0;j=1===A?n[0].blocksPerLine*n[0].blocksPerColumn:c*r.mcusPerColumn;const L=i||j;for(;M=65488&&R<=65495))break;h+=2}return h-f}function j(t,e){const r=[],{blocksPerLine:n,blocksPerColumn:i}=e,o=n<<3,s=new Int32Array(64),a=new Uint8Array(64);function u(t,r,n){const i=e.quantizationTable;let o,s,a,u,c,l,f,h,d;const p=n;let y;for(y=0;y<64;y++)p[y]=t[y]*i[y];for(y=0;y<8;++y){const t=8*y;0!==p[1+t]||0!==p[2+t]||0!==p[3+t]||0!==p[4+t]||0!==p[5+t]||0!==p[6+t]||0!==p[7+t]?(o=5793*p[0+t]+128>>8,s=5793*p[4+t]+128>>8,a=p[2+t],u=p[6+t],c=2896*(p[1+t]-p[7+t])+128>>8,h=2896*(p[1+t]+p[7+t])+128>>8,l=p[3+t]<<4,f=p[5+t]<<4,d=o-s+1>>1,o=o+s+1>>1,s=d,d=3784*a+1567*u+128>>8,a=1567*a-3784*u+128>>8,u=d,d=c-f+1>>1,c=c+f+1>>1,f=d,d=h+l+1>>1,l=h-l+1>>1,h=d,d=o-u+1>>1,o=o+u+1>>1,u=d,d=s-a+1>>1,s=s+a+1>>1,a=d,d=2276*c+3406*h+2048>>12,c=3406*c-2276*h+2048>>12,h=d,d=799*l+4017*f+2048>>12,l=4017*l-799*f+2048>>12,f=d,p[0+t]=o+h,p[7+t]=o-h,p[1+t]=s+f,p[6+t]=s-f,p[2+t]=a+l,p[5+t]=a-l,p[3+t]=u+c,p[4+t]=u-c):(d=5793*p[0+t]+512>>10,p[0+t]=d,p[1+t]=d,p[2+t]=d,p[3+t]=d,p[4+t]=d,p[5+t]=d,p[6+t]=d,p[7+t]=d)}for(y=0;y<8;++y){const t=y;0!==p[8+t]||0!==p[16+t]||0!==p[24+t]||0!==p[32+t]||0!==p[40+t]||0!==p[48+t]||0!==p[56+t]?(o=5793*p[0+t]+2048>>12,s=5793*p[32+t]+2048>>12,a=p[16+t],u=p[48+t],c=2896*(p[8+t]-p[56+t])+2048>>12,h=2896*(p[8+t]+p[56+t])+2048>>12,l=p[24+t],f=p[40+t],d=o-s+1>>1,o=o+s+1>>1,s=d,d=3784*a+1567*u+2048>>12,a=1567*a-3784*u+2048>>12,u=d,d=c-f+1>>1,c=c+f+1>>1,f=d,d=h+l+1>>1,l=h-l+1>>1,h=d,d=o-u+1>>1,o=o+u+1>>1,u=d,d=s-a+1>>1,s=s+a+1>>1,a=d,d=2276*c+3406*h+2048>>12,c=3406*c-2276*h+2048>>12,h=d,d=799*l+4017*f+2048>>12,l=4017*l-799*f+2048>>12,f=d,p[0+t]=o+h,p[56+t]=o-h,p[8+t]=s+f,p[48+t]=s-f,p[16+t]=a+l,p[40+t]=a-l,p[24+t]=u+c,p[32+t]=u-c):(d=5793*n[y+0]+8192>>14,p[0+t]=d,p[8+t]=d,p[16+t]=d,p[24+t]=d,p[32+t]=d,p[40+t]=d,p[48+t]=d,p[56+t]=d)}for(y=0;y<64;++y){const t=128+(p[y]+8>>4);r[y]=t<0?0:t>255?255:t}}for(let t=0;t>4==0)for(let r=0;r<64;r++){i[P[r]]=t[e++]}else{if(n>>4!=1)throw new Error(\"DQT: invalid table spec\");for(let t=0;t<64;t++){i[P[t]]=r()}}this.quantizationTables[15&n]=i}break}case 65472:case 65473:case 65474:{r();const n={extended:65473===o,progressive:65474===o,precision:t[e++],scanLines:r(),samplesPerLine:r(),components:{},componentsOrder:[]},s=t[e++];let a;for(let r=0;r>4,i=15&t[e+1],o=t[e+2];n.componentsOrder.push(a),n.components[a]={h:r,v:i,quantizationIdx:o},e+=3}i(n),this.frames.push(n);break}case 65476:{const n=r();for(let r=2;r>4==0?this.huffmanTablesDC[15&n]=I(i,s):this.huffmanTablesAC[15&n]=I(i,s)}break}case 65501:r(),this.resetInterval=r();break;case 65498:{r();const n=t[e++],i=[],o=this.frames[0];for(let r=0;r>4],r.huffmanTableAC=this.huffmanTablesAC[15&n],i.push(r)}const s=t[e++],a=t[e++],u=t[e++],c=R(t,e,o,i,this.resetInterval,s,a,u>>4,15&u);e+=c;break}case 65535:255!==t[e]&&e--;break;default:if(255===t[e-3]&&t[e-2]>=192&&t[e-2]<=254){e-=3;break}throw new Error(\"unknown JPEG marker \"+o.toString(16))}o=r()}}getResult(){const{frames:t}=this;if(0===this.frames.length)throw new Error(\"no frames were decoded\");this.frames.length>1&&console.warn(\"more than one frame is not supported\");for(let t=0;t{const a=B(t,n,i);for(let u=0;u{const a=B(t,n,i);for(let u=0;u=this.fileDirectory.BitsPerSample.length)throw new RangeError(`Sample index ${t} is out of range.`);const e=this.fileDirectory.BitsPerSample[t];if(e%8!=0)throw new Error(`Sample bit-width of ${e} is not supported.`);return e/8}getReaderForSample(t){const e=this.fileDirectory.SampleFormat?this.fileDirectory.SampleFormat[t]:1,r=this.fileDirectory.BitsPerSample[t];switch(e){case 1:switch(r){case 8:return DataView.prototype.getUint8;case 16:return DataView.prototype.getUint16;case 32:return DataView.prototype.getUint32}break;case 2:switch(r){case 8:return DataView.prototype.getInt8;case 16:return DataView.prototype.getInt16;case 32:return DataView.prototype.getInt32}break;case 3:switch(r){case 32:return DataView.prototype.getFloat32;case 64:return DataView.prototype.getFloat64}}throw Error(\"Unsupported data format/bitsPerSample\")}getArrayForSample(t,e){return W(this.fileDirectory.SampleFormat?this.fileDirectory.SampleFormat[t]:1,this.fileDirectory.BitsPerSample[t],e)}async getTileOrStrip(t,e,r,n){const i=Math.ceil(this.getWidth()/this.getTileWidth()),o=Math.ceil(this.getHeight()/this.getTileHeight());let s;const{tiles:a}=this;let u,c;1===this.planarConfiguration?s=e*i+t:2===this.planarConfiguration&&(s=r*i*o+e*i+t),this.isTiled?(u=this.fileDirectory.TileOffsets[s],c=this.fileDirectory.TileByteCounts[s]):(u=this.fileDirectory.StripOffsets[s],c=this.fileDirectory.StripByteCounts[s]);const l=await this.source.fetch(u,c);let f;return null===a?f=n.decode(this.fileDirectory,l):a[s]||(f=n.decode(this.fileDirectory,l),a[s]=f),{x:t,y:e,sample:r,data:await f}}async _readRaster(t,e,r,n,i,o,s,a){const u=this.getTileWidth(),c=this.getTileHeight(),l=Math.max(Math.floor(t[0]/u),0),f=Math.min(Math.ceil(t[2]/u),Math.ceil(this.getWidth()/this.getTileWidth())),h=Math.max(Math.floor(t[1]/c),0),d=Math.min(Math.ceil(t[3]/c),Math.ceil(this.getHeight()/this.getTileHeight())),p=t[2]-t[0];let y=this.getBytesPerPixel();const g=[],m=[];for(let t=0;t{const o=i.data,s=new DataView(o),a=i.y*c,f=i.x*u,h=(i.y+1)*c,d=(i.x+1)*u,b=m[l],w=Math.min(c,c-(h-t[3])),x=Math.min(u,u-(d-t[2]));for(let i=Math.max(0,t[1]-a);iu[2]||u[1]>u[3])throw new Error(\"Invalid subsets\");const c=(u[2]-u[0])*(u[3]-u[1]);if(e&&e.length){for(let t=0;t=this.fileDirectory.SamplesPerPixel)return Promise.reject(new RangeError(`Invalid sample index '${e[t]}'.`))}else for(let t=0;ts[2]||s[1]>s[3])throw new Error(\"Invalid subsets\");const a=this.fileDirectory.PhotometricInterpretation;if(a===d.RGB){let i=[0,1,2];if(this.fileDirectory.ExtraSamples!==p.Unspecified&&o){i=[];for(let t=0;t\"Item\"===t.tagName);t&&(o=o.filter(e=>Number(e.attributes.sample)===t));for(let t=0;t0;let i=!0;for(let o=0;o<8;o++){let s=this._dataView.getUint8(t+(e?o:7-o));n&&(i?0!==s&&(s=255&~(s-1),i=!1):s=255&~s),r+=s*256**o}return n&&(r=-r),r}getUint8(t,e){return this._dataView.getUint8(t,e)}getInt8(t,e){return this._dataView.getInt8(t,e)}getUint16(t,e){return this._dataView.getUint16(t,e)}getInt16(t,e){return this._dataView.getInt16(t,e)}getUint32(t,e){return this._dataView.getUint32(t,e)}getInt32(t,e){return this._dataView.getInt32(t,e)}getFloat32(t,e){return this._dataView.getFloat32(t,e)}getFloat64(t,e){return this._dataView.getFloat64(t,e)}}class K{constructor(t,e,r,n){this._dataView=new DataView(t),this._sliceOffset=e,this._littleEndian=r,this._bigTiff=n}get sliceOffset(){return this._sliceOffset}get sliceTop(){return this._sliceOffset+this.buffer.byteLength}get littleEndian(){return this._littleEndian}get bigTiff(){return this._bigTiff}get buffer(){return this._dataView.buffer}covers(t,e){return this.sliceOffset<=t&&this.sliceTop>=t+e}readUint8(t){return this._dataView.getUint8(t-this._sliceOffset,this._littleEndian)}readInt8(t){return this._dataView.getInt8(t-this._sliceOffset,this._littleEndian)}readUint16(t){return this._dataView.getUint16(t-this._sliceOffset,this._littleEndian)}readInt16(t){return this._dataView.getInt16(t-this._sliceOffset,this._littleEndian)}readUint32(t){return this._dataView.getUint32(t-this._sliceOffset,this._littleEndian)}readInt32(t){return this._dataView.getInt32(t-this._sliceOffset,this._littleEndian)}readFloat32(t){return this._dataView.getFloat32(t-this._sliceOffset,this._littleEndian)}readFloat64(t){return this._dataView.getFloat64(t-this._sliceOffset,this._littleEndian)}readUint64(t){const e=this.readUint32(t),r=this.readUint32(t+4);let n;if(this._littleEndian){if(n=e+2**32*r,!Number.isSafeInteger(n))throw new Error(n+\" exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues\");return n}if(n=2**32*e+r,!Number.isSafeInteger(n))throw new Error(n+\" exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues\");return n}readInt64(t){let e=0;const r=(128&this._dataView.getUint8(t+(this._littleEndian?7:0)))>0;let n=!0;for(let i=0;i<8;i++){let o=this._dataView.getUint8(t+(this._littleEndian?i:7-i));r&&(n?0!==o&&(o=255&~(o-1),n=!1):o=255&~o),e+=o*256**i}return r&&(e=-e),e}readOffset(t){return this._bigTiff?this.readUint64(t):this.readUint32(t)}}var Y=r(68),Z=r(7),X=r(25),Q=r(40),J=r.n(Q),tt=r(106),et=r.n(tt),rt=r(39),nt=r.n(rt);class it{constructor(t,{blockSize:e=65536}={}){this.retrievalFunction=t,this.blockSize=e,this.blockRequests=new Map,this.blocks=new Map,this.blockIdsAwaitingRequest=null}async fetch(t,e,r=!1){const n=t+e,i=[],o=[],s=[];for(let e=Math.floor(t/this.blockSize)*this.blockSize;esetTimeout(e,t))}(),this.blockIdsAwaitingRequest){const t=function(t){if(0===t.length)return[];const e=[];let r=[];e.push(r);for(let n=0;n{const e=await t,i=r*this.blockSize,o=Math.min(i+this.blockSize,e.data.byteLength),s=e.data.slice(i,o);this.blockRequests.delete(n),this.blocks.set(n,{data:s,offset:e.offset+i,length:s.byteLength,top:e.offset+o})})())}}this.blockIdsAwaitingRequest=null}const a=[];for(const t of o)this.blockRequests.has(t)&&a.push(this.blockRequests.get(t));await Promise.all(a),await Promise.all(s);return function(t,e,r){const n=e+r,i=new ArrayBuffer(r),o=new Uint8Array(i);for(const r of t){const t=r.offset-e,i=r.top-n;let s,a=0,u=0;t<0?a=-t:t>0&&(u=t),s=i<0?r.length-a:n-r.offset-a;const c=new Uint8Array(r.data,a,s);o.set(c,u)}return i}(i.map(t=>this.blocks.get(t)),t,e)}async requestData(t,e){const r=await this.retrievalFunction(t,e);return r.length?r.length!==r.data.byteLength&&(r.data=r.data.slice(0,r.length)):r.length=r.data.byteLength,r.top=r.offset+r.length,r}}function ot(t,e){const{forceXHR:r}=e;if(\"function\"==typeof fetch&&!r)return function(t,{headers:e={},blockSize:r}={}){return new it(async(r,n)=>{const i=await fetch(t,{headers:{...e,Range:`bytes=${r}-${r+n-1}`}});if(i.ok){if(206===i.status){return{data:i.arrayBuffer?await i.arrayBuffer():(await i.buffer()).buffer,offset:r,length:n}}{const t=i.arrayBuffer?await i.arrayBuffer():(await i.buffer()).buffer;return{data:t,offset:0,length:t.byteLength}}}throw new Error(\"Error fetching data.\")},{blockSize:r})}(t,e);if(\"undefined\"!=typeof XMLHttpRequest)return function(t,{headers:e={},blockSize:r}={}){return new it(async(r,n)=>new Promise((i,o)=>{const s=new XMLHttpRequest;s.open(\"GET\",t),s.responseType=\"arraybuffer\";const a={...e,Range:`bytes=${r}-${r+n-1}`};for(const[t,e]of Object.entries(a))s.setRequestHeader(t,e);s.onload=()=>{const t=s.response;206===s.status?i({data:t,offset:r,length:n}):i({data:t,offset:0,length:t.byteLength})},s.onerror=o,s.send()}),{blockSize:r})}(t,e);if(J.a.get)return function(t,{headers:e={},blockSize:r}={}){return new it(async(r,n)=>new Promise((i,o)=>{const s=nt.a.parse(t);(\"http:\"===s.protocol?J.a:et.a).get({...s,headers:{...e,Range:`bytes=${r}-${r+n-1}`}},t=>{const e=[];t.on(\"data\",t=>{e.push(t)}),t.on(\"end\",()=>{const t=Z.Buffer.concat(e).buffer;i({data:t,offset:r,length:t.byteLength})})}).on(\"error\",o)}),{blockSize:r})}(t,e);throw new Error(\"No remote source available\")}function st(t){const e=function(t,e,r){return new Promise((n,i)=>{Object(X.open)(t,e,r,(t,e)=>{t?i(t):n(e)})})}(t,\"r\");return{async fetch(t,r){const n=await e,{buffer:i}=await function(...t){return new Promise((e,r)=>{Object(X.read)(...t,(t,n,i)=>{t?r(t):e({bytesRead:n,buffer:i})})})}(n,Z.Buffer.alloc(r),0,r,t);return i.buffer},async close(){const t=await e;return await function(t){return new Promise((e,r)=>{Object(X.close)(t,t=>{t?r(t):e()})})}(t)}}}function at(t,e){for(const r in e)e.hasOwnProperty(r)&&(t[r]=e[r])}function ut(t,e){if(t.length{let r=e;for(;0!==t[r];)r++;return r},readUshort:(t,e)=>t[e]<<8|t[e+1],readShort:(t,e)=>{const r=yt.ui8;return r[0]=t[e+1],r[1]=t[e+0],yt.i16[0]},readInt:(t,e)=>{const r=yt.ui8;return r[0]=t[e+3],r[1]=t[e+2],r[2]=t[e+1],r[3]=t[e+0],yt.i32[0]},readUint:(t,e)=>{const r=yt.ui8;return r[0]=t[e+3],r[1]=t[e+2],r[2]=t[e+1],r[3]=t[e+0],yt.ui32[0]},readASCII:(t,e,r)=>r.map(r=>String.fromCharCode(t[e+r])).join(\"\"),readFloat:(t,e)=>{const r=yt.ui8;return lt(4,n=>{r[n]=t[e+3-n]}),yt.fl32[0]},readDouble:(t,e)=>{const r=yt.ui8;return lt(8,n=>{r[n]=t[e+7-n]}),yt.fl64[0]},writeUshort:(t,e,r)=>{t[e]=r>>8&255,t[e+1]=255&r},writeUint:(t,e,r)=>{t[e]=r>>24&255,t[e+1]=r>>16&255,t[e+2]=r>>8&255,t[e+3]=r>>0&255},writeASCII:(t,e,r)=>{lt(r.length,n=>{t[e+n]=r.charCodeAt(n)})},ui8:new Uint8Array(8)};yt.fl64=new Float64Array(yt.ui8.buffer),yt.writeDouble=(t,e,r)=>{yt.fl64[0]=r,lt(8,r=>{t[e+r]=yt.ui8[7-r]})};const gt=t=>{const e=new Uint8Array(1e3);let r=4;const n=yt;e[0]=77,e[1]=77,e[3]=42;let i=8;if(n.writeUint(e,r,i),r+=4,t.forEach((r,o)=>{const s=((t,e,r,n)=>{let i=r;const o=Object.keys(n).filter(t=>null!=t&&\"undefined\"!==t);t.writeUshort(e,i,o.length),i+=2;let s=i+12*o.length+4;for(const r of o){let o=null;\"number\"==typeof r?o=r:\"string\"==typeof r&&(o=parseInt(r,10));const a=c[o],u=pt[a];if(null==a||void 0===a||void 0===a)throw new Error(\"unknown type of tag: \"+o);let l=n[r];if(void 0===l)throw new Error(\"failed to get value for key \"+r);\"ASCII\"===a&&\"string\"==typeof l&&!1===ut(l,\"\\0\")&&(l+=\"\\0\");const f=l.length;t.writeUshort(e,i,o),i+=2,t.writeUshort(e,i,u),i+=2,t.writeUint(e,i,f),i+=4;let h=[-1,1,1,2,4,8,0,0,0,0,0,0,8][u]*f,d=i;h>4&&(t.writeUint(e,i,s),d=s),\"ASCII\"===a?t.writeASCII(e,d,l):\"SHORT\"===a?lt(f,r=>{t.writeUshort(e,d+2*r,l[r])}):\"LONG\"===a?lt(f,r=>{t.writeUint(e,d+4*r,l[r])}):\"RATIONAL\"===a?lt(f,r=>{t.writeUint(e,d+8*r,Math.round(1e4*l[r])),t.writeUint(e,d+8*r+4,1e4)}):\"DOUBLE\"===a&<(f,r=>{t.writeDouble(e,d+8*r,l[r])}),h>4&&(h+=1&h,s+=h),i+=4}return[i,s]})(n,e,i,r);i=s[1],o{lt(i,r=>{lt(n,n=>{o.push(t[n][e][r])})})})),e.ImageLength=r,delete e.height,e.ImageWidth=i,delete e.width,e.BitsPerSample||(e.BitsPerSample=lt(n,()=>8)),mt.forEach(t=>{const r=t[0];if(!e[r]){const n=t[1];e[r]=n}}),e.PhotometricInterpretation||(e.PhotometricInterpretation=3===e.BitsPerSample.length?2:1),e.SamplesPerPixel||(e.SamplesPerPixel=[n]),e.StripByteCounts||(e.StripByteCounts=[n*r*i]),e.ModelPixelScale||(e.ModelPixelScale=[360/i,180/r,0]),e.SampleFormat||(e.SampleFormat=lt(n,()=>1));const s=Object.keys(e).filter(t=>ut(t,\"GeoKey\")).sort((t,e)=>dt[t]-dt[e]);if(!e.GeoKeyDirectory){const t=[1,1,0,s.length];s.forEach(r=>{const n=Number(dt[r]);let i,o,s;t.push(n),\"SHORT\"===c[n]?(i=1,o=0,s=e[r]):\"GeogCitationGeoKey\"===r?(i=e.GeoAsciiParams.length,o=Number(dt.GeoAsciiParams),s=0):console.log(\"[geotiff.js] couldn't get TIFFTagLocation for \"+r),t.push(o),t.push(i),t.push(s)}),e.GeoKeyDirectory=t}for(const t in s)s.hasOwnProperty(t)&&delete e[t];[\"Compression\",\"ExtraSamples\",\"GeographicTypeGeoKey\",\"GTModelTypeGeoKey\",\"GTRasterTypeGeoKey\",\"ImageLength\",\"ImageWidth\",\"PhotometricInterpretation\",\"PlanarConfiguration\",\"ResolutionUnit\",\"SamplesPerPixel\",\"XPosition\",\"YPosition\"].forEach(t=>{var r;e[t]&&(e[t]=(r=e[t],Array.isArray(r)?r:[r]))});const a=(t=>{const e={};for(const r in t)\"StripOffsets\"!==r&&(dt[r]||console.error(r,\"not in name2code:\",Object.keys(dt)),e[dt[r]]=t[r]);return e})(e);return((t,e,r,n)=>{if(null==r)throw new Error(\"you passed into encodeImage a width of type \"+r);if(null==e)throw new Error(\"you passed into encodeImage a width of type \"+e);const i={256:[e],257:[r],273:[1e3],278:[r],305:\"geotiff.js\"};if(n)for(const t in n)n.hasOwnProperty(t)&&(i[t]=n[t]);const o=new Uint8Array(gt([i])),s=new Uint8Array(t),a=i[277],u=new Uint8Array(1e3+e*r*a);return lt(o.length,t=>{u[t]=o[t]}),function(t,e){const{length:r}=t;for(let n=0;n{u[1e3+e]=t}),u.buffer})(o,i,r,a)}class vt{log(){}info(){}warn(){}error(){}time(){}timeEnd(){}}let wt=new vt;function xt(t=new vt){wt=t}function _t(t){switch(t){case h.BYTE:case h.ASCII:case h.SBYTE:case h.UNDEFINED:return 1;case h.SHORT:case h.SSHORT:return 2;case h.LONG:case h.SLONG:case h.FLOAT:case h.IFD:return 4;case h.RATIONAL:case h.SRATIONAL:case h.DOUBLE:case h.LONG8:case h.SLONG8:case h.IFD8:return 8;default:throw new RangeError(\"Invalid field type: \"+t)}}function St(t,e,r,n){let i=null,o=null;const s=_t(e);switch(e){case h.BYTE:case h.ASCII:case h.UNDEFINED:i=new Uint8Array(r),o=t.readUint8;break;case h.SBYTE:i=new Int8Array(r),o=t.readInt8;break;case h.SHORT:i=new Uint16Array(r),o=t.readUint16;break;case h.SSHORT:i=new Int16Array(r),o=t.readInt16;break;case h.LONG:case h.IFD:i=new Uint32Array(r),o=t.readUint32;break;case h.SLONG:i=new Int32Array(r),o=t.readInt32;break;case h.LONG8:case h.IFD8:i=new Array(r),o=t.readUint64;break;case h.SLONG8:i=new Array(r),o=t.readInt64;break;case h.RATIONAL:i=new Uint32Array(2*r),o=t.readUint32;break;case h.SRATIONAL:i=new Int32Array(2*r),o=t.readInt32;break;case h.FLOAT:i=new Float32Array(r),o=t.readFloat32;break;case h.DOUBLE:i=new Float64Array(r),o=t.readFloat64;break;default:throw new RangeError(\"Invalid field type: \"+e)}if(e!==h.RATIONAL&&e!==h.SRATIONAL)for(let e=0;et.getWidth()-e.getWidth());for(let e=0;en||o&&o>s)break}}let f=e;if(s){const[t,e]=a.getOrigin(),[r,n]=u.getResolution(a);f=[Math.round((s[0]-t)/r),Math.round((s[1]-e)/n),Math.round((s[2]-t)/r),Math.round((s[3]-e)/n)],f=[Math.min(f[0],f[2]),Math.min(f[1],f[3]),Math.max(f[0],f[2]),Math.max(f[1],f[3])]}return u.readRasters({...t,window:f})}}class Tt extends kt{constructor(t,e,r,n,i={}){super(),this.source=t,this.littleEndian=e,this.bigTiff=r,this.firstIFDOffset=n,this.cache=i.cache||!1,this.ifdRequests=[],this.ghostValues=null}async getSlice(t,e){const r=this.bigTiff?4048:1024;return new K(await this.source.fetch(t,void 0!==e?e:r),t,this.littleEndian,this.bigTiff)}async parseFileDirectoryAt(t){const e=this.bigTiff?20:12,r=this.bigTiff?8:2;let n=await this.getSlice(t);const i=this.bigTiff?n.readUint64(t):n.readUint16(t),o=i*e+(this.bigTiff?16:6);n.covers(t,o)||(n=await this.getSlice(t,o));const s={};let u=t+(this.bigTiff?8:2);for(let t=0;t{const e=await this.ifdRequests[t-1];if(0===e.nextIFDByteOffset)throw new Et(t);return this.parseFileDirectoryAt(e.nextIFDByteOffset)})(),this.ifdRequests[t]}async getImage(t=0){const e=await this.requestIFD(t);return new V(e.fileDirectory,e.geoKeyDirectory,this.dataView,this.littleEndian,this.cache,this.source)}async getImageCount(){let t=0,e=!0;for(;e;)try{await this.requestIFD(t),++t}catch(t){if(!(t instanceof Et))throw t;e=!1}return t}async getGhostValues(){const t=this.bigTiff?16:8;if(this.ghostValues)return this.ghostValues;const e=\"GDAL_STRUCTURAL_METADATA_SIZE=\",r=e.length+100;let n=await this.getSlice(t,r);if(e===St(n,h.ASCII,e.length,t)){const e=St(n,h.ASCII,r,t).split(\"\\n\")[0],i=Number(e.split(\"=\")[1].split(\" \")[0])+e.length;i>r&&(n=await this.getSlice(t,i));const o=St(n,h.ASCII,i,t);this.ghostValues={},o.split(\"\\n\").filter(t=>t.length>0).map(t=>t.split(\"=\")).forEach(([t,e])=>{this.ghostValues[t]=e})}return this.ghostValues}static async fromSource(t,e){const r=await t.fetch(0,1024),n=new $(r),i=n.getUint16(0,0);let o;if(18761===i)o=!0;else{if(19789!==i)throw new TypeError(\"Invalid byte order value.\");o=!1}const s=n.getUint16(2,o);let a;if(42===s)a=!1;else{if(43!==s)throw new TypeError(\"Invalid magic number.\");a=!0;if(8!==n.getUint16(4,o))throw new Error(\"Unsupported offset byte-size.\")}const u=a?n.getUint64(8,o):n.getUint32(4,o);return new Tt(t,o,a,u,e)}close(){return\"function\"==typeof this.source.close&&this.source.close()}}e.default=Tt;class Ot extends kt{constructor(t,e){super(),this.mainFile=t,this.overviewFiles=e,this.imageFiles=[t].concat(e),this.fileDirectoriesPerFile=null,this.fileDirectoriesPerFileParsing=null,this.imageCount=null}async parseFileDirectoriesPerFile(){const t=[this.mainFile.parseFileDirectoryAt(this.mainFile.firstIFDOffset)].concat(this.overviewFiles.map(t=>t.parseFileDirectoryAt(t.firstIFDOffset)));return this.fileDirectoriesPerFile=await Promise.all(t),this.fileDirectoriesPerFile}async getImage(t=0){await this.getImageCount(),await this.parseFileDirectoriesPerFile();let e=0,r=0;for(let n=0;nt.getImageCount()));return this.imageCounts=await Promise.all(t),this.imageCount=this.imageCounts.reduce((t,e)=>t+e,0),this.imageCount}}async function Ct(t,e={}){return Tt.fromSource(ot(t,e))}async function Pt(t){return Tt.fromSource(function(t){return{fetch:async(e,r)=>t.slice(e,e+r)}}(t))}async function It(t){return Tt.fromSource(st(t))}async function Rt(t){return Tt.fromSource((e=t,{fetch:async(t,r)=>new Promise((n,i)=>{const o=e.slice(t,t+r),s=new FileReader;s.onload=t=>n(t.target.result),s.onerror=i,s.readAsArrayBuffer(o)})}));var e}async function jt(t,e=[],r={}){const n=await Tt.fromSource(ot(t,r)),i=await Promise.all(e.map(t=>Tt.fromSource(ot(t,r))));return new Ot(n,i)}async function Mt(t,e){return bt(t,e)}},function(t,e,r){function n(t,e){\"use strict\";var r=(e=e||{}).pos||0,i=\"<\".charCodeAt(0),o=\">\".charCodeAt(0),s=\"-\".charCodeAt(0),a=\"/\".charCodeAt(0),u=\"!\".charCodeAt(0),c=\"'\".charCodeAt(0),l='\"'.charCodeAt(0);function f(){for(var e=[];t[r];)if(t.charCodeAt(r)==i){if(t.charCodeAt(r+1)===a)return(r=t.indexOf(\">\",r))+1&&(r+=1),e;if(t.charCodeAt(r+1)===u){if(t.charCodeAt(r+2)==s){for(;-1!==r&&(t.charCodeAt(r)!==o||t.charCodeAt(r-1)!=s||t.charCodeAt(r-2)!=s||-1==r);)r=t.indexOf(\">\",r+1);-1===r&&(r=t.length)}else for(r+=2;t.charCodeAt(r)!==o&&t[r];)r++;r++;continue}var n=y();e.push(n)}else{var c=h();c.trim().length>0&&e.push(c),r++}return e}function h(){var e=r;return-2===(r=t.indexOf(\"<\",r)-1)&&(r=t.length),t.slice(e,r+1)}function d(){for(var e=r;-1===\"\\n\\t>/= \".indexOf(t[r])&&t[r];)r++;return t.slice(e,r)}var p=e.noChildNodes||[\"img\",\"br\",\"input\",\"meta\",\"link\"];function y(){r++;const e=d(),n={};let i=[];for(;t.charCodeAt(r)!==o&&t[r];){var s=t.charCodeAt(r);if(s>64&&s<91||s>96&&s<123){for(var u=d(),h=t.charCodeAt(r);h&&h!==c&&h!==l&&!(h>64&&h<91||h>96&&h<123)&&h!==o;)r++,h=t.charCodeAt(r);if(h===c||h===l){var y=g();if(-1===r)return{tagName:e,attributes:n,children:i}}else y=null,r--;n[u]=y}r++}if(t.charCodeAt(r-1)!==a)if(\"script\"==e){var m=r+1;r=t.indexOf(\"<\\/script>\",r),i=[t.slice(m,r-1)],r+=9}else if(\"style\"==e){m=r+1;r=t.indexOf(\"\",r),i=[t.slice(m,r-1)],r+=8}else-1==p.indexOf(e)&&(r++,i=f());else r++;return{tagName:e,attributes:n,children:i}}function g(){var e=t[r],n=++r;return r=t.indexOf(e,n),t.slice(n,r)}var m,b=null;if(void 0!==e.attrValue){e.attrName=e.attrName||\"id\";for(b=[];-1!==(m=void 0,m=new RegExp(\"\\\\s\"+e.attrName+\"\\\\s*=['\\\"]\"+e.attrValue+\"['\\\"]\").exec(t),r=m?m.index:-1);)-1!==(r=t.lastIndexOf(\"<\",r))&&b.push(y()),t=t.substr(r),r=0}else b=e.parseNode?y():f();return e.filter&&(b=n.filter(b,e.filter)),e.setPos&&(b.pos=r),b}n.simplify=function(t){var e={};if(!t.length)return\"\";if(1===t.length&&\"string\"==typeof t[0])return t[0];for(var r in t.forEach((function(t){if(\"object\"==typeof t){e[t.tagName]||(e[t.tagName]=[]);var r=n.simplify(t.children||[]);e[t.tagName].push(r),t.attributes&&(r._attributes=t.attributes)}})),e)1==e[r].length&&(e[r]=e[r][0]);return e},n.filter=function(t,e){var r=[];return t.forEach((function(t){if(\"object\"==typeof t&&e(t)&&r.push(t),t.children){var i=n.filter(t.children,e);r=r.concat(i)}})),r},n.stringify=function(t){var e=\"\";function r(t){if(t)for(var r=0;r\",r(t.children),e+=\"\"}return r(t),e},n.toContentString=function(t){if(Array.isArray(t)){var e=\"\";return t.forEach((function(t){e=(e+=\" \"+n.toContentString(t)).trim()})),e}return\"object\"==typeof t?n.toContentString(t.children):\" \"+t},n.getElementById=function(t,e,r){var i=n(t,{attrValue:e});return r?n.simplify(i):i[0]},n.getElementsByClassName=function(t,e,r){const i=n(t,{attrName:\"class\",attrValue:\"[a-zA-Z0-9-s ]*\"+e+\"[a-zA-Z0-9-s ]*\"});return r?n.simplify(i):i},n.parseStream=function(t,e){if(\"string\"==typeof e&&(e=e.length+2),\"string\"==typeof t){var i=r(25);t=i.createReadStream(t,{start:e}),e=0}var o=e,s=\"\";return t.on(\"data\",(function(e){s+=e;for(var r=0;;){if(!(o=s.indexOf(\"<\",o)+1))return void(o=r);if(\"/\"!==s[o+1]){var i=n(s,{pos:o-1,parseNode:!0,setPos:!0});if((o=i.pos)>s.length-1||oo.length-1||i=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0==(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg=\"\",this.ended=!1,this.chunks=[],this.strm=new u,this.strm.avail_out=0;var r=n.inflateInit2(this.strm,e.windowBits);if(r!==s.Z_OK)throw new Error(a[r]);if(this.header=new c,n.inflateGetHeader(this.strm,this.header),e.dictionary&&(\"string\"==typeof e.dictionary?e.dictionary=o.string2buf(e.dictionary):\"[object ArrayBuffer]\"===l.call(e.dictionary)&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(r=n.inflateSetDictionary(this.strm,e.dictionary))!==s.Z_OK))throw new Error(a[r])}function h(t,e){var r=new f(e);if(r.push(t,!0),r.err)throw r.msg||a[r.err];return r.result}f.prototype.push=function(t,e){var r,a,u,c,f,h=this.strm,d=this.options.chunkSize,p=this.options.dictionary,y=!1;if(this.ended)return!1;a=e===~~e?e:!0===e?s.Z_FINISH:s.Z_NO_FLUSH,\"string\"==typeof t?h.input=o.binstring2buf(t):\"[object ArrayBuffer]\"===l.call(t)?h.input=new Uint8Array(t):h.input=t,h.next_in=0,h.avail_in=h.input.length;do{if(0===h.avail_out&&(h.output=new i.Buf8(d),h.next_out=0,h.avail_out=d),(r=n.inflate(h,s.Z_NO_FLUSH))===s.Z_NEED_DICT&&p&&(r=n.inflateSetDictionary(this.strm,p)),r===s.Z_BUF_ERROR&&!0===y&&(r=s.Z_OK,y=!1),r!==s.Z_STREAM_END&&r!==s.Z_OK)return this.onEnd(r),this.ended=!0,!1;h.next_out&&(0!==h.avail_out&&r!==s.Z_STREAM_END&&(0!==h.avail_in||a!==s.Z_FINISH&&a!==s.Z_SYNC_FLUSH)||(\"string\"===this.options.to?(u=o.utf8border(h.output,h.next_out),c=h.next_out-u,f=o.buf2string(h.output,u),h.next_out=c,h.avail_out=d-c,c&&i.arraySet(h.output,h.output,u,c,0),this.onData(f)):this.onData(i.shrinkBuf(h.output,h.next_out)))),0===h.avail_in&&0===h.avail_out&&(y=!0)}while((h.avail_in>0||0===h.avail_out)&&r!==s.Z_STREAM_END);return r===s.Z_STREAM_END&&(a=s.Z_FINISH),a===s.Z_FINISH?(r=n.inflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===s.Z_OK):a!==s.Z_SYNC_FLUSH||(this.onEnd(s.Z_OK),h.avail_out=0,!0)},f.prototype.onData=function(t){this.chunks.push(t)},f.prototype.onEnd=function(t){t===s.Z_OK&&(\"string\"===this.options.to?this.result=this.chunks.join(\"\"):this.result=i.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},e.Inflate=f,e.inflate=h,e.inflateRaw=function(t,e){return(e=e||{}).raw=!0,h(t,e)},e.ungzip=h},function(t,e,r){\"use strict\";var n=r(26);class i extends n.a{constructor(){super(t=>(this._observers.add(t),()=>this._observers.delete(t))),this._observers=new Set}next(t){for(const e of this._observers)e.next(t)}error(t){for(const e of this._observers)e.error(t)}complete(){for(const t of this._observers)t.complete()}}e.a=i},function(t,e,r){\"use strict\";r.d(e,\"a\",(function(){return i}));const n=()=>{};function i(){let t,e=!1,r=n;return[new Promise(n=>{e?n(t):r=n}),n=>{e=!0,t=n,r(t)}]}},function(t,e,r){\"use strict\";r.d(e,\"a\",(function(){return i}));var n=r(2);function i(t){return t&&\"object\"==typeof t&&t[n.d]}},function(t,e,r){var n=r(40),i=r(39),o=t.exports;for(var s in n)n.hasOwnProperty(s)&&(o[s]=n[s]);function a(t){if(\"string\"==typeof t&&(t=i.parse(t)),t.protocol||(t.protocol=\"https:\"),\"https:\"!==t.protocol)throw new Error('Protocol \"'+t.protocol+'\" not supported. Expected \"https:\"');return t}o.request=function(t,e){return t=a(t),n.request.call(this,t,e)},o.get=function(t,e){return t=a(t),n.get.call(this,t,e)}},function(t,e,r){\"use strict\";(function(e){var n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},i=function(){function t(t,e){for(var r=0;r0?s-4:s;for(r=0;r>16&255,u[l++]=e>>8&255,u[l++]=255&e;2===a&&(e=i[t.charCodeAt(r)]<<2|i[t.charCodeAt(r+1)]>>4,u[l++]=255&e);1===a&&(e=i[t.charCodeAt(r)]<<10|i[t.charCodeAt(r+1)]<<4|i[t.charCodeAt(r+2)]>>2,u[l++]=e>>8&255,u[l++]=255&e);return u},e.fromByteArray=function(t){for(var e,r=t.length,i=r%3,o=[],s=0,a=r-i;sa?a:s+16383));1===i?(e=t[r-1],o.push(n[e>>2]+n[e<<4&63]+\"==\")):2===i&&(e=(t[r-2]<<8)+t[r-1],o.push(n[e>>10]+n[e>>4&63]+n[e<<2&63]+\"=\"));return o.join(\"\")};for(var n=[],i=[],o=\"undefined\"!=typeof Uint8Array?Uint8Array:Array,s=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",a=0,u=s.length;a0)throw new Error(\"Invalid string. Length must be a multiple of 4\");var r=t.indexOf(\"=\");return-1===r&&(r=e),[r,r===e?0:4-r%4]}function l(t,e,r){for(var i,o,s=[],a=e;a>18&63]+n[o>>12&63]+n[o>>6&63]+n[63&o]);return s.join(\"\")}i[\"-\".charCodeAt(0)]=62,i[\"_\".charCodeAt(0)]=63},function(t,e){\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\ne.read=function(t,e,r,n,i){var o,s,a=8*i-n-1,u=(1<>1,l=-7,f=r?i-1:0,h=r?-1:1,d=t[e+f];for(f+=h,o=d&(1<<-l)-1,d>>=-l,l+=a;l>0;o=256*o+t[e+f],f+=h,l-=8);for(s=o&(1<<-l)-1,o>>=-l,l+=n;l>0;s=256*s+t[e+f],f+=h,l-=8);if(0===o)o=1-c;else{if(o===u)return s?NaN:1/0*(d?-1:1);s+=Math.pow(2,n),o-=c}return(d?-1:1)*s*Math.pow(2,o-n)},e.write=function(t,e,r,n,i,o){var s,a,u,c=8*o-i-1,l=(1<>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:o-1,p=n?1:-1,y=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,s=l):(s=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-s))<1&&(s--,u*=2),(e+=s+f>=1?h/u:h*Math.pow(2,1-f))*u>=2&&(s++,u/=2),s+f>=l?(a=0,s=l):s+f>=1?(a=(e*u-1)*Math.pow(2,i),s+=f):(a=e*Math.pow(2,f-1)*Math.pow(2,i),s=0));i>=8;t[r+d]=255&a,d+=p,a/=256,i-=8);for(s=s<0;t[r+d]=255&s,d+=p,s/=256,c-=8);t[r+d-p]|=128*y}},function(t,e){var r=\"undefined\"!=typeof self?self:this,n=function(){function t(){this.fetch=!1,this.DOMException=r.DOMException}return t.prototype=r,new t}();!function(t){!function(e){var r=\"URLSearchParams\"in t,n=\"Symbol\"in t&&\"iterator\"in Symbol,i=\"FileReader\"in t&&\"Blob\"in t&&function(){try{return new Blob,!0}catch(t){return!1}}(),o=\"FormData\"in t,s=\"ArrayBuffer\"in t;if(s)var a=[\"[object Int8Array]\",\"[object Uint8Array]\",\"[object Uint8ClampedArray]\",\"[object Int16Array]\",\"[object Uint16Array]\",\"[object Int32Array]\",\"[object Uint32Array]\",\"[object Float32Array]\",\"[object Float64Array]\"],u=ArrayBuffer.isView||function(t){return t&&a.indexOf(Object.prototype.toString.call(t))>-1};function c(t){if(\"string\"!=typeof t&&(t=String(t)),/[^a-z0-9\\-#$%&'*+.^_`|~]/i.test(t))throw new TypeError(\"Invalid character in header field name\");return t.toLowerCase()}function l(t){return\"string\"!=typeof t&&(t=String(t)),t}function f(t){var e={next:function(){var e=t.shift();return{done:void 0===e,value:e}}};return n&&(e[Symbol.iterator]=function(){return e}),e}function h(t){this.map={},t instanceof h?t.forEach((function(t,e){this.append(e,t)}),this):Array.isArray(t)?t.forEach((function(t){this.append(t[0],t[1])}),this):t&&Object.getOwnPropertyNames(t).forEach((function(e){this.append(e,t[e])}),this)}function d(t){if(t.bodyUsed)return Promise.reject(new TypeError(\"Already read\"));t.bodyUsed=!0}function p(t){return new Promise((function(e,r){t.onload=function(){e(t.result)},t.onerror=function(){r(t.error)}}))}function y(t){var e=new FileReader,r=p(e);return e.readAsArrayBuffer(t),r}function g(t){if(t.slice)return t.slice(0);var e=new Uint8Array(t.byteLength);return e.set(new Uint8Array(t)),e.buffer}function m(){return this.bodyUsed=!1,this._initBody=function(t){var e;this._bodyInit=t,t?\"string\"==typeof t?this._bodyText=t:i&&Blob.prototype.isPrototypeOf(t)?this._bodyBlob=t:o&&FormData.prototype.isPrototypeOf(t)?this._bodyFormData=t:r&&URLSearchParams.prototype.isPrototypeOf(t)?this._bodyText=t.toString():s&&i&&((e=t)&&DataView.prototype.isPrototypeOf(e))?(this._bodyArrayBuffer=g(t.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):s&&(ArrayBuffer.prototype.isPrototypeOf(t)||u(t))?this._bodyArrayBuffer=g(t):this._bodyText=t=Object.prototype.toString.call(t):this._bodyText=\"\",this.headers.get(\"content-type\")||(\"string\"==typeof t?this.headers.set(\"content-type\",\"text/plain;charset=UTF-8\"):this._bodyBlob&&this._bodyBlob.type?this.headers.set(\"content-type\",this._bodyBlob.type):r&&URLSearchParams.prototype.isPrototypeOf(t)&&this.headers.set(\"content-type\",\"application/x-www-form-urlencoded;charset=UTF-8\"))},i&&(this.blob=function(){var t=d(this);if(t)return t;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error(\"could not read FormData body as blob\");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?d(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(y)}),this.text=function(){var t,e,r,n=d(this);if(n)return n;if(this._bodyBlob)return t=this._bodyBlob,e=new FileReader,r=p(e),e.readAsText(t),r;if(this._bodyArrayBuffer)return Promise.resolve(function(t){for(var e=new Uint8Array(t),r=new Array(e.length),n=0;n-1?n:r),this.mode=e.mode||this.mode||null,this.signal=e.signal||this.signal,this.referrer=null,(\"GET\"===this.method||\"HEAD\"===this.method)&&i)throw new TypeError(\"Body not allowed for GET or HEAD requests\");this._initBody(i)}function w(t){var e=new FormData;return t.trim().split(\"&\").forEach((function(t){if(t){var r=t.split(\"=\"),n=r.shift().replace(/\\+/g,\" \"),i=r.join(\"=\").replace(/\\+/g,\" \");e.append(decodeURIComponent(n),decodeURIComponent(i))}})),e}function x(t,e){e||(e={}),this.type=\"default\",this.status=void 0===e.status?200:e.status,this.ok=this.status>=200&&this.status<300,this.statusText=\"statusText\"in e?e.statusText:\"OK\",this.headers=new h(e.headers),this.url=e.url||\"\",this._initBody(t)}v.prototype.clone=function(){return new v(this,{body:this._bodyInit})},m.call(v.prototype),m.call(x.prototype),x.prototype.clone=function(){return new x(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new h(this.headers),url:this.url})},x.error=function(){var t=new x(null,{status:0,statusText:\"\"});return t.type=\"error\",t};var _=[301,302,303,307,308];x.redirect=function(t,e){if(-1===_.indexOf(e))throw new RangeError(\"Invalid status code\");return new x(null,{status:e,headers:{location:t}})},e.DOMException=t.DOMException;try{new e.DOMException}catch(t){e.DOMException=function(t,e){this.message=t,this.name=e;var r=Error(t);this.stack=r.stack},e.DOMException.prototype=Object.create(Error.prototype),e.DOMException.prototype.constructor=e.DOMException}function S(t,r){return new Promise((function(n,o){var s=new v(t,r);if(s.signal&&s.signal.aborted)return o(new e.DOMException(\"Aborted\",\"AbortError\"));var a=new XMLHttpRequest;function u(){a.abort()}a.onload=function(){var t,e,r={status:a.status,statusText:a.statusText,headers:(t=a.getAllResponseHeaders()||\"\",e=new h,t.replace(/\\r?\\n[\\t ]+/g,\" \").split(/\\r?\\n/).forEach((function(t){var r=t.split(\":\"),n=r.shift().trim();if(n){var i=r.join(\":\").trim();e.append(n,i)}})),e)};r.url=\"responseURL\"in a?a.responseURL:r.headers.get(\"X-Request-URL\");var i=\"response\"in a?a.response:a.responseText;n(new x(i,r))},a.onerror=function(){o(new TypeError(\"Network request failed\"))},a.ontimeout=function(){o(new TypeError(\"Network request failed\"))},a.onabort=function(){o(new e.DOMException(\"Aborted\",\"AbortError\"))},a.open(s.method,s.url,!0),\"include\"===s.credentials?a.withCredentials=!0:\"omit\"===s.credentials&&(a.withCredentials=!1),\"responseType\"in a&&i&&(a.responseType=\"blob\"),s.headers.forEach((function(t,e){a.setRequestHeader(e,t)})),s.signal&&(s.signal.addEventListener(\"abort\",u),a.onreadystatechange=function(){4===a.readyState&&s.signal.removeEventListener(\"abort\",u)}),a.send(void 0===s._bodyInit?null:s._bodyInit)}))}S.polyfill=!0,t.fetch||(t.fetch=S,t.Headers=h,t.Request=v,t.Response=x),e.Headers=h,e.Request=v,e.Response=x,e.fetch=S,Object.defineProperty(e,\"__esModule\",{value:!0})}({})}(n),n.fetch.ponyfill=!0,delete n.fetch.polyfill;var i=n;(e=i.fetch).default=i.fetch,e.fetch=i.fetch,e.Headers=i.Headers,e.Request=i.Request,e.Response=i.Response,t.exports=e},function(t,e,r){\"use strict\";t.exports=function(){return r(112)('!function(t){var e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}r.m=t,r.c=e,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&\"object\"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:t}),2&e&&\"string\"!=typeof t)for(var i in t)r.d(n,i,function(e){return t[e]}.bind(null,i));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,\"a\",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p=\"\",r(r.s=106)}([function(t,e,r){\"use strict\";const n=r(73);t.exports=function(t){return\"+\"===t[0]&&(t=t.substring(1)),(t=(t=n(t)).replace(/^0+(?=\\\\d)/,\"\")).includes(\".\")&&(t=t.replace(/\\\\.?0+$/,\"\")),\"\"===t&&(t=\"0\"),\"-0\"===t&&(t=\"0\"),t}},function(t,e,r){\"use strict\";const n=r(4),i=r(0),o=r(15),s=r(32);function a(t,e,r){t=i(t),e=i(e);const a=\"-\"!==t[0],u=\"-\"!==e[0],c=o(t),l=o(e);if(c||l)return a==u?\"Infinity\":\"-Infinity\";if(\"0\"===e)throw new Error(\"[preciso] division by zero\");if(\"\"===t||\"0\"===t)return\"0\";const f=a!==u?\"-\":\"\";return a||(t=n(t)),u||(e=n(e)),f+s(t,e,r)}t.exports=a,t.exports.default=a},function(t,e,r){\"use strict\";r.d(e,\"a\",(function(){return n})),r.d(e,\"b\",(function(){return i})),r.d(e,\"c\",(function(){return o})),r.d(e,\"d\",(function(){return s})),r.d(e,\"e\",(function(){return a}));const n=Symbol(\"thread.errors\"),i=Symbol(\"thread.events\"),o=Symbol(\"thread.terminate\"),s=Symbol(\"thread.transferable\"),a=Symbol(\"thread.worker\")},function(t,e){var r;r=function(){return this}();try{r=r||new Function(\"return this\")()}catch(t){\"object\"==typeof window&&(r=window)}t.exports=r},function(t,e,r){\"use strict\";const n=r(0);function i(t){return\"-\"===(t=n(t))[0]?t.substring(1):t}t.exports=i,t.exports.default=i},function(t,e,r){\"use strict\";function n(t,e){const r=t.length,n=e.length,i=t.indexOf(\".\"),o=e.indexOf(\".\"),s=-1===i?r:i,a=-1===o?n:o,u=s-a;let c=u<0?-1*u:0,l=u<=0?0:u,f=Math.max(s,a)+1+Math.max(r-s,n-a)-1,h=0;for(;ho)return\">\";if(n\":return\"-\"+s(t,e)}else if(u&&!c)switch(e=e.substring(1),n(t,e)){case\"=\":return\"0\";case\"<\":return\"-\"+s(e,t);case\">\":return s(t,e)}}t.exports=u,t.exports.default=u},function(t,e){var r,n,i=t.exports={};function o(){throw new Error(\"setTimeout has not been defined\")}function s(){throw new Error(\"clearTimeout has not been defined\")}function a(t){if(r===setTimeout)return setTimeout(t,0);if((r===o||!r)&&setTimeout)return r=setTimeout,setTimeout(t,0);try{return r(t,0)}catch(e){try{return r.call(null,t,0)}catch(e){return r.call(this,t,0)}}}!function(){try{r=\"function\"==typeof setTimeout?setTimeout:o}catch(t){r=o}try{n=\"function\"==typeof clearTimeout?clearTimeout:s}catch(t){n=s}}();var u,c=[],l=!1,f=-1;function h(){l&&u&&(l=!1,u.length?c=u.concat(c):f=-1,c.length&&d())}function d(){if(!l){var t=a(h);l=!0;for(var e=c.length;e;){for(u=c,c=[];++f1)for(var r=1;r0){for(;m>p-f;){const r=t[m-h]||\"0\",n=e[m-d]||\"0\";let i=Number(r)+Number(n)+g;i>=10?(i-=10,g=1):g=0,\"\"===y&&0===i||(y=i+y),m--}y&&(y=\".\"+y),m--}if(l>0)for(;m>=0;){const r=t[m-h]||\"0\",n=e[m-d]||\"0\";let i=Number(r)+Number(n)+g;i>=10?(i-=10,g=1):g=0,y=i+y,m--}return 1===g&&(y=g+y),\".\"===y[0]&&(y=\"0\"+y),y}t.exports=i,t.exports.default=i},function(t,e,r){\"use strict\";(function(t){\\n/*!\\n * The buffer module from node.js, for the browser.\\n *\\n * @author Feross Aboukhadijeh \\n * @license MIT\\n */\\nvar n=r(108),i=r(109),o=r(61);function s(){return u.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function a(t,e){if(s()=s())throw new RangeError(\"Attempt to allocate Buffer larger than maximum size: 0x\"+s().toString(16)+\" bytes\");return 0|t}function p(t,e){if(u.isBuffer(t))return t.length;if(\"undefined\"!=typeof ArrayBuffer&&\"function\"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;\"string\"!=typeof t&&(t=\"\"+t);var r=t.length;if(0===r)return 0;for(var n=!1;;)switch(e){case\"ascii\":case\"latin1\":case\"binary\":return r;case\"utf8\":case\"utf-8\":case void 0:return B(t).length;case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return 2*r;case\"hex\":return r>>>1;case\"base64\":return G(t).length;default:if(n)return B(t).length;e=(\"\"+e).toLowerCase(),n=!0}}function y(t,e,r){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return\"\";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return\"\";if((r>>>=0)<=(e>>>=0))return\"\";for(t||(t=\"utf8\");;)switch(t){case\"hex\":return O(this,e,r);case\"utf8\":case\"utf-8\":return k(this,e,r);case\"ascii\":return T(this,e,r);case\"latin1\":case\"binary\":return C(this,e,r);case\"base64\":return E(this,e,r);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return I(this,e,r);default:if(n)throw new TypeError(\"Unknown encoding: \"+t);t=(t+\"\").toLowerCase(),n=!0}}function g(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function m(t,e,r,n,i){if(0===t.length)return-1;if(\"string\"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}if(\"string\"==typeof e&&(e=u.from(e,n)),u.isBuffer(e))return 0===e.length?-1:b(t,e,r,n,i);if(\"number\"==typeof e)return e&=255,u.TYPED_ARRAY_SUPPORT&&\"function\"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):b(t,[e],r,n,i);throw new TypeError(\"val must be string, number or Buffer\")}function b(t,e,r,n,i){var o,s=1,a=t.length,u=e.length;if(void 0!==n&&(\"ucs2\"===(n=String(n).toLowerCase())||\"ucs-2\"===n||\"utf16le\"===n||\"utf-16le\"===n)){if(t.length<2||e.length<2)return-1;s=2,a/=2,u/=2,r/=2}function c(t,e){return 1===s?t[e]:t.readUInt16BE(e*s)}if(i){var l=-1;for(o=r;oa&&(r=a-u),o=r;o>=0;o--){for(var f=!0,h=0;hi&&(n=i):n=i;var o=e.length;if(o%2!=0)throw new TypeError(\"Invalid hex string\");n>o/2&&(n=o/2);for(var s=0;s>8,i=r%256,o.push(i),o.push(n);return o}(e,t.length-r),t,r,n)}function E(t,e,r){return 0===e&&r===t.length?n.fromByteArray(t):n.fromByteArray(t.slice(e,r))}function k(t,e,r){r=Math.min(t.length,r);for(var n=[],i=e;i239?4:c>223?3:c>191?2:1;if(i+f<=r)switch(f){case 1:c<128&&(l=c);break;case 2:128==(192&(o=t[i+1]))&&(u=(31&c)<<6|63&o)>127&&(l=u);break;case 3:o=t[i+1],s=t[i+2],128==(192&o)&&128==(192&s)&&(u=(15&c)<<12|(63&o)<<6|63&s)>2047&&(u<55296||u>57343)&&(l=u);break;case 4:o=t[i+1],s=t[i+2],a=t[i+3],128==(192&o)&&128==(192&s)&&128==(192&a)&&(u=(15&c)<<18|(63&o)<<12|(63&s)<<6|63&a)>65535&&u<1114112&&(l=u)}null===l?(l=65533,f=1):l>65535&&(l-=65536,n.push(l>>>10&1023|55296),l=56320|1023&l),n.push(l),i+=f}return function(t){var e=t.length;if(e<=4096)return String.fromCharCode.apply(String,t);var r=\"\",n=0;for(;n0&&(t=this.toString(\"hex\",0,r).match(/.{2}/g).join(\" \"),this.length>r&&(t+=\" ... \")),\"\"},u.prototype.compare=function(t,e,r,n,i){if(!u.isBuffer(t))throw new TypeError(\"Argument must be a Buffer\");if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),e<0||r>t.length||n<0||i>this.length)throw new RangeError(\"out of range index\");if(n>=i&&e>=r)return 0;if(n>=i)return-1;if(e>=r)return 1;if(this===t)return 0;for(var o=(i>>>=0)-(n>>>=0),s=(r>>>=0)-(e>>>=0),a=Math.min(o,s),c=this.slice(n,i),l=t.slice(e,r),f=0;fi)&&(r=i),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError(\"Attempt to write outside buffer bounds\");n||(n=\"utf8\");for(var o=!1;;)switch(n){case\"hex\":return v(this,t,e,r);case\"utf8\":case\"utf-8\":return w(this,t,e,r);case\"ascii\":return x(this,t,e,r);case\"latin1\":case\"binary\":return _(this,t,e,r);case\"base64\":return S(this,t,e,r);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return A(this,t,e,r);default:if(o)throw new TypeError(\"Unknown encoding: \"+n);n=(\"\"+n).toLowerCase(),o=!0}},u.prototype.toJSON=function(){return{type:\"Buffer\",data:Array.prototype.slice.call(this._arr||this,0)}};function T(t,e,r){var n=\"\";r=Math.min(t.length,r);for(var i=e;in)&&(r=n);for(var i=\"\",o=e;or)throw new RangeError(\"Trying to access beyond buffer length\")}function R(t,e,r,n,i,o){if(!u.isBuffer(t))throw new TypeError(\\'\"buffer\" argument must be a Buffer instance\\');if(e>i||et.length)throw new RangeError(\"Index out of range\")}function j(t,e,r,n){e<0&&(e=65535+e+1);for(var i=0,o=Math.min(t.length-r,2);i>>8*(n?i:1-i)}function M(t,e,r,n){e<0&&(e=4294967295+e+1);for(var i=0,o=Math.min(t.length-r,4);i>>8*(n?i:3-i)&255}function L(t,e,r,n,i,o){if(r+n>t.length)throw new RangeError(\"Index out of range\");if(r<0)throw new RangeError(\"Index out of range\")}function F(t,e,r,n,o){return o||L(t,0,r,4),i.write(t,e,r,n,23,4),r+4}function N(t,e,r,n,o){return o||L(t,0,r,8),i.write(t,e,r,n,52,8),r+8}u.prototype.slice=function(t,e){var r,n=this.length;if((t=~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),(e=void 0===e?n:~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),e0&&(i*=256);)n+=this[t+--e]*i;return n},u.prototype.readUInt8=function(t,e){return e||P(t,1,this.length),this[t]},u.prototype.readUInt16LE=function(t,e){return e||P(t,2,this.length),this[t]|this[t+1]<<8},u.prototype.readUInt16BE=function(t,e){return e||P(t,2,this.length),this[t]<<8|this[t+1]},u.prototype.readUInt32LE=function(t,e){return e||P(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},u.prototype.readUInt32BE=function(t,e){return e||P(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},u.prototype.readIntLE=function(t,e,r){t|=0,e|=0,r||P(t,e,this.length);for(var n=this[t],i=1,o=0;++o=(i*=128)&&(n-=Math.pow(2,8*e)),n},u.prototype.readIntBE=function(t,e,r){t|=0,e|=0,r||P(t,e,this.length);for(var n=e,i=1,o=this[t+--n];n>0&&(i*=256);)o+=this[t+--n]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*e)),o},u.prototype.readInt8=function(t,e){return e||P(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},u.prototype.readInt16LE=function(t,e){e||P(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},u.prototype.readInt16BE=function(t,e){e||P(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},u.prototype.readInt32LE=function(t,e){return e||P(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},u.prototype.readInt32BE=function(t,e){return e||P(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},u.prototype.readFloatLE=function(t,e){return e||P(t,4,this.length),i.read(this,t,!0,23,4)},u.prototype.readFloatBE=function(t,e){return e||P(t,4,this.length),i.read(this,t,!1,23,4)},u.prototype.readDoubleLE=function(t,e){return e||P(t,8,this.length),i.read(this,t,!0,52,8)},u.prototype.readDoubleBE=function(t,e){return e||P(t,8,this.length),i.read(this,t,!1,52,8)},u.prototype.writeUIntLE=function(t,e,r,n){(t=+t,e|=0,r|=0,n)||R(this,t,e,r,Math.pow(2,8*r)-1,0);var i=1,o=0;for(this[e]=255&t;++o=0&&(o*=256);)this[e+i]=t/o&255;return e+r},u.prototype.writeUInt8=function(t,e,r){return t=+t,e|=0,r||R(this,t,e,1,255,0),u.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=255&t,e+1},u.prototype.writeUInt16LE=function(t,e,r){return t=+t,e|=0,r||R(this,t,e,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):j(this,t,e,!0),e+2},u.prototype.writeUInt16BE=function(t,e,r){return t=+t,e|=0,r||R(this,t,e,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):j(this,t,e,!1),e+2},u.prototype.writeUInt32LE=function(t,e,r){return t=+t,e|=0,r||R(this,t,e,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t):M(this,t,e,!0),e+4},u.prototype.writeUInt32BE=function(t,e,r){return t=+t,e|=0,r||R(this,t,e,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):M(this,t,e,!1),e+4},u.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e|=0,!n){var i=Math.pow(2,8*r-1);R(this,t,e,r,i-1,-i)}var o=0,s=1,a=0;for(this[e]=255&t;++o>0)-a&255;return e+r},u.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e|=0,!n){var i=Math.pow(2,8*r-1);R(this,t,e,r,i-1,-i)}var o=r-1,s=1,a=0;for(this[e+o]=255&t;--o>=0&&(s*=256);)t<0&&0===a&&0!==this[e+o+1]&&(a=1),this[e+o]=(t/s>>0)-a&255;return e+r},u.prototype.writeInt8=function(t,e,r){return t=+t,e|=0,r||R(this,t,e,1,127,-128),u.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[e]=255&t,e+1},u.prototype.writeInt16LE=function(t,e,r){return t=+t,e|=0,r||R(this,t,e,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):j(this,t,e,!0),e+2},u.prototype.writeInt16BE=function(t,e,r){return t=+t,e|=0,r||R(this,t,e,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):j(this,t,e,!1),e+2},u.prototype.writeInt32LE=function(t,e,r){return t=+t,e|=0,r||R(this,t,e,4,2147483647,-2147483648),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):M(this,t,e,!0),e+4},u.prototype.writeInt32BE=function(t,e,r){return t=+t,e|=0,r||R(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):M(this,t,e,!1),e+4},u.prototype.writeFloatLE=function(t,e,r){return F(this,t,e,!0,r)},u.prototype.writeFloatBE=function(t,e,r){return F(this,t,e,!1,r)},u.prototype.writeDoubleLE=function(t,e,r){return N(this,t,e,!0,r)},u.prototype.writeDoubleBE=function(t,e,r){return N(this,t,e,!1,r)},u.prototype.copy=function(t,e,r,n){if(r||(r=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n=this.length)throw new RangeError(\"sourceStart out of bounds\");if(n<0)throw new RangeError(\"sourceEnd out of bounds\");n>this.length&&(n=this.length),t.length-e=0;--i)t[i+e]=this[i+r];else if(o<1e3||!u.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,r=void 0===r?this.length:r>>>0,t||(t=0),\"number\"==typeof t)for(o=e;o55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(s+1===n){(e-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(e-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;o.push(r)}else if(r<2048){if((e-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error(\"Invalid code point\");if((e-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function G(t){return n.toByteArray(function(t){if((t=function(t){return t.trim?t.trim():t.replace(/^\\\\s+|\\\\s+$/g,\"\")}(t).replace(D,\"\")).length<2)return\"\";for(;t.length%4!=0;)t+=\"=\";return t}(t))}function q(t,e,r,n){for(var i=0;i=e.length||i>=t.length);++i)e[i+r]=t[i];return i}}).call(this,r(3))},function(t,e){\"function\"==typeof Object.create?t.exports=function(t,e){e&&(t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:t.exports=function(t,e){if(e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}}},function(t,e,r){\"use strict\";function n(t){return/^[-+]?0(\\\\.0+)?(e[\\\\.\\\\d]+)?$/.test(t)}t.exports=n,t.exports.default=n},function(t,e,r){(function(n){e.formatArgs=function(e){if(e[0]=(this.useColors?\"%c\":\"\")+this.namespace+(this.useColors?\" %c\":\" \")+e[0]+(this.useColors?\"%c \":\" \")+\"+\"+t.exports.humanize(this.diff),!this.useColors)return;const r=\"color: \"+this.color;e.splice(1,0,r,\"color: inherit\");let n=0,i=0;e[0].replace(/%[a-zA-Z%]/g,t=>{\"%%\"!==t&&(n++,\"%c\"===t&&(i=n))}),e.splice(i,0,r)},e.save=function(t){try{t?e.storage.setItem(\"debug\",t):e.storage.removeItem(\"debug\")}catch(t){}},e.load=function(){let t;try{t=e.storage.getItem(\"debug\")}catch(t){}!t&&void 0!==n&&\"env\"in n&&(t=n.env.DEBUG);return t},e.useColors=function(){if(\"undefined\"!=typeof window&&window.process&&(\"renderer\"===window.process.type||window.process.__nwjs))return!0;if(\"undefined\"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\\\\/(\\\\d+)/))return!1;return\"undefined\"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||\"undefined\"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||\"undefined\"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\\\\/(\\\\d+)/)&&parseInt(RegExp.$1,10)>=31||\"undefined\"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\\\\/(\\\\d+)/)},e.storage=function(){try{return localStorage}catch(t){}}(),e.destroy=(()=>{let t=!1;return()=>{t||(t=!0,console.warn(\"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.\"))}})(),e.colors=[\"#0000CC\",\"#0000FF\",\"#0033CC\",\"#0033FF\",\"#0066CC\",\"#0066FF\",\"#0099CC\",\"#0099FF\",\"#00CC00\",\"#00CC33\",\"#00CC66\",\"#00CC99\",\"#00CCCC\",\"#00CCFF\",\"#3300CC\",\"#3300FF\",\"#3333CC\",\"#3333FF\",\"#3366CC\",\"#3366FF\",\"#3399CC\",\"#3399FF\",\"#33CC00\",\"#33CC33\",\"#33CC66\",\"#33CC99\",\"#33CCCC\",\"#33CCFF\",\"#6600CC\",\"#6600FF\",\"#6633CC\",\"#6633FF\",\"#66CC00\",\"#66CC33\",\"#9900CC\",\"#9900FF\",\"#9933CC\",\"#9933FF\",\"#99CC00\",\"#99CC33\",\"#CC0000\",\"#CC0033\",\"#CC0066\",\"#CC0099\",\"#CC00CC\",\"#CC00FF\",\"#CC3300\",\"#CC3333\",\"#CC3366\",\"#CC3399\",\"#CC33CC\",\"#CC33FF\",\"#CC6600\",\"#CC6633\",\"#CC9900\",\"#CC9933\",\"#CCCC00\",\"#CCCC33\",\"#FF0000\",\"#FF0033\",\"#FF0066\",\"#FF0099\",\"#FF00CC\",\"#FF00FF\",\"#FF3300\",\"#FF3333\",\"#FF3366\",\"#FF3399\",\"#FF33CC\",\"#FF33FF\",\"#FF6600\",\"#FF6633\",\"#FF9900\",\"#FF9933\",\"#FFCC00\",\"#FFCC33\"],e.log=console.debug||console.log||(()=>{}),t.exports=r(129)(e);const{formatters:i}=t.exports;i.j=function(t){try{return JSON.stringify(t)}catch(t){return\"[UnexpectedJSONParseError]: \"+t.message}}}).call(this,r(7))},function(t,e,r){\"use strict\";r.d(e,\"a\",(function(){return o})),r.d(e,\"b\",(function(){return s}));const n={deserialize:t=>Object.assign(Error(t.message),{name:t.name,stack:t.stack}),serialize:t=>({__error_marker:\"$$error\",message:t.message,name:t.name,stack:t.stack})};let i={deserialize(t){return(e=t)&&\"object\"==typeof e&&\"__error_marker\"in e&&\"$$error\"===e.__error_marker?n.deserialize(t):t;var e},serialize:t=>t instanceof Error?n.serialize(t):t};function o(t){return i.deserialize(t)}function s(t){return i.serialize(t)}},function(t,e,r){\"use strict\";var n=r(28),i=Object.keys||function(t){var e=[];for(var r in t)e.push(r);return e};t.exports=f;var o=Object.create(r(21));o.inherits=r(10);var s=r(60),a=r(65);o.inherits(f,s);for(var u=i(a.prototype),c=0;c/^[a-zA-Z][a-zA-Z\\\\d+\\\\-.]*:/.test(t);function a(t){const e=new Blob([t],{type:\"application/javascript\"});return URL.createObjectURL(e)}let u;function c(){return u||(u=function(){if(\"undefined\"==typeof Worker)return class{constructor(){throw Error(\"No web worker implementation available. You might have tried to spawn a worker within a worker in a browser that doesn\\'t support workers in workers.\")}};class t extends Worker{constructor(t,e){var r,n;\"string\"==typeof t&&e&&e._baseURL?t=new URL(t,e._baseURL):\"string\"==typeof t&&!s(t)&&i().match(/^file:\\\\/\\\\//i)&&(t=new URL(t,i().replace(/\\\\/[^\\\\/]+$/,\"/\")),(null===(r=null==e?void 0:e.CORSWorkaround)||void 0===r||r)&&(t=a(`importScripts(${JSON.stringify(t)});`))),\"string\"==typeof t&&s(t)&&(null===(n=null==e?void 0:e.CORSWorkaround)||void 0===n||n)&&(t=a(`importScripts(${JSON.stringify(t)});`)),super(t,e)}}class e extends t{constructor(t,e){super(window.URL.createObjectURL(t),e)}static fromText(t,r){const n=new window.Blob([t],{type:\"text/javascript\"});return new e(n,r)}}return{blob:e,default:t}}()),u}},function(t,e,r){\"use strict\";var n,i;r.d(e,\"a\",(function(){return n})),r.d(e,\"b\",(function(){return i})),function(t){t.cancel=\"cancel\",t.run=\"run\"}(n||(n={})),function(t){t.error=\"error\",t.init=\"init\",t.result=\"result\",t.running=\"running\",t.uncaughtError=\"uncaughtError\"}(i||(i={}))},function(t,e,r){function n(t){return Object.prototype.toString.call(t)}e.isArray=function(t){return Array.isArray?Array.isArray(t):\"[object Array]\"===n(t)},e.isBoolean=function(t){return\"boolean\"==typeof t},e.isNull=function(t){return null===t},e.isNullOrUndefined=function(t){return null==t},e.isNumber=function(t){return\"number\"==typeof t},e.isString=function(t){return\"string\"==typeof t},e.isSymbol=function(t){return\"symbol\"==typeof t},e.isUndefined=function(t){return void 0===t},e.isRegExp=function(t){return\"[object RegExp]\"===n(t)},e.isObject=function(t){return\"object\"==typeof t&&null!==t},e.isDate=function(t){return\"[object Date]\"===n(t)},e.isError=function(t){return\"[object Error]\"===n(t)||t instanceof Error},e.isFunction=function(t){return\"function\"==typeof t},e.isPrimitive=function(t){return null===t||\"boolean\"==typeof t||\"number\"==typeof t||\"string\"==typeof t||\"symbol\"==typeof t||void 0===t},e.isBuffer=r(9).Buffer.isBuffer},function(t,e,r){\"use strict\";const n=r(11),i=r(50);function o(t){return n(t)?\"\":i(t)}t.exports=o,t.exports.default=o},function(t,e,r){\"use strict\";const n=r(35);function i(t,e){return n(t,\"2\",e)}t.exports=i,t.exports.default=i},function(t,e,r){\"use strict\";r.d(e,\"a\",(function(){return o}));var n=r(2);function i(t){throw Error(t)}const o={errors:t=>t[n.a]||i(\"Error observable not found. Make sure to pass a thread instance as returned by the spawn() promise.\"),events:t=>t[n.b]||i(\"Events observable not found. Make sure to pass a thread instance as returned by the spawn() promise.\"),terminate:t=>t[n.c]()}},function(t,e){},function(t,e,r){\"use strict\";const n=()=>\"function\"==typeof Symbol,i=t=>n()&&Boolean(Symbol[t]),o=t=>i(t)?Symbol[t]:\"@@\"+t;i(\"asyncIterator\")||(Symbol.asyncIterator=Symbol.asyncIterator||Symbol.for(\"Symbol.asyncIterator\"));const s=o(\"iterator\"),a=o(\"observable\"),u=o(\"species\");function c(t,e){const r=t[e];if(null!=r){if(\"function\"!=typeof r)throw new TypeError(r+\" is not a function\");return r}}function l(t){let e=t.constructor;return void 0!==e&&(e=e[u],null===e&&(e=void 0)),void 0!==e?e:v}function f(t){f.log?f.log(t):setTimeout(()=>{throw t},0)}function h(t){Promise.resolve().then(()=>{try{t()}catch(t){f(t)}})}function d(t){const e=t._cleanup;if(void 0!==e&&(t._cleanup=void 0,e))try{if(\"function\"==typeof e)e();else{const t=c(e,\"unsubscribe\");t&&t.call(e)}}catch(t){f(t)}}function p(t){t._observer=void 0,t._queue=void 0,t._state=\"closed\"}function y(t,e,r){t._state=\"running\";const n=t._observer;try{const i=n?c(n,e):void 0;switch(e){case\"next\":i&&i.call(n,r);break;case\"error\":if(p(t),!i)throw r;i.call(n,r);break;case\"complete\":p(t),i&&i.call(n)}}catch(t){f(t)}\"closed\"===t._state?d(t):\"running\"===t._state&&(t._state=\"ready\")}function g(t,e,r){if(\"closed\"!==t._state)return\"buffering\"===t._state?(t._queue=t._queue||[],void t._queue.push({type:e,value:r})):\"ready\"!==t._state?(t._state=\"buffering\",t._queue=[{type:e,value:r}],void h(()=>function(t){const e=t._queue;if(e){t._queue=void 0,t._state=\"ready\";for(const r of e)if(y(t,r.type,r.value),\"closed\"===t._state)break}}(t))):void y(t,e,r)}class m{constructor(t,e){this._cleanup=void 0,this._observer=t,this._queue=void 0,this._state=\"initializing\";const r=new b(this);try{this._cleanup=e.call(void 0,r)}catch(t){r.error(t)}\"initializing\"===this._state&&(this._state=\"ready\")}get closed(){return\"closed\"===this._state}unsubscribe(){\"closed\"!==this._state&&(p(this),d(this))}}class b{constructor(t){this._subscription=t}get closed(){return\"closed\"===this._subscription._state}next(t){g(this._subscription,\"next\",t)}error(t){g(this._subscription,\"error\",t)}complete(){g(this._subscription,\"complete\")}}class v{constructor(t){if(!(this instanceof v))throw new TypeError(\"Observable cannot be called as a function\");if(\"function\"!=typeof t)throw new TypeError(\"Observable initializer must be a function\");this._subscriber=t}subscribe(t,e,r){return\"object\"==typeof t&&null!==t||(t={next:t,error:e,complete:r}),new m(t,this._subscriber)}pipe(t,...e){let r=this;for(const n of[t,...e])r=n(r);return r}tap(t,e,r){const n=\"object\"!=typeof t||null===t?{next:t,error:e,complete:r}:t;return new v(t=>this.subscribe({next(e){n.next&&n.next(e),t.next(e)},error(e){n.error&&n.error(e),t.error(e)},complete(){n.complete&&n.complete(),t.complete()},start(t){n.start&&n.start(t)}}))}forEach(t){return new Promise((e,r)=>{if(\"function\"!=typeof t)return void r(new TypeError(t+\" is not a function\"));function n(){i.unsubscribe(),e(void 0)}const i=this.subscribe({next(e){try{t(e,n)}catch(t){r(t),i.unsubscribe()}},error(t){r(t)},complete(){e(void 0)}})})}map(t){if(\"function\"!=typeof t)throw new TypeError(t+\" is not a function\");return new(l(this))(e=>this.subscribe({next(r){let n=r;try{n=t(r)}catch(t){return e.error(t)}e.next(n)},error(t){e.error(t)},complete(){e.complete()}}))}filter(t){if(\"function\"!=typeof t)throw new TypeError(t+\" is not a function\");return new(l(this))(e=>this.subscribe({next(r){try{if(!t(r))return}catch(t){return e.error(t)}e.next(r)},error(t){e.error(t)},complete(){e.complete()}}))}reduce(t,e){if(\"function\"!=typeof t)throw new TypeError(t+\" is not a function\");const r=l(this),n=arguments.length>1;let i=!1,o=e;return new r(e=>this.subscribe({next(r){const s=!i;if(i=!0,!s||n)try{o=t(o,r)}catch(t){return e.error(t)}else o=r},error(t){e.error(t)},complete(){if(!i&&!n)return e.error(new TypeError(\"Cannot reduce an empty sequence\"));e.next(o),e.complete()}}))}concat(...t){const e=l(this);return new e(r=>{let n,i=0;return function o(s){n=s.subscribe({next(t){r.next(t)},error(t){r.error(t)},complete(){i===t.length?(n=void 0,r.complete()):o(e.from(t[i++]))}})}(this),()=>{n&&(n.unsubscribe(),n=void 0)}})}flatMap(t){if(\"function\"!=typeof t)throw new TypeError(t+\" is not a function\");const e=l(this);return new e(r=>{const n=[],i=this.subscribe({next(i){let s;if(t)try{s=t(i)}catch(t){return r.error(t)}else s=i;const a=e.from(s).subscribe({next(t){r.next(t)},error(t){r.error(t)},complete(){const t=n.indexOf(a);t>=0&&n.splice(t,1),o()}});n.push(a)},error(t){r.error(t)},complete(){o()}});function o(){i.closed&&0===n.length&&r.complete()}return()=>{n.forEach(t=>t.unsubscribe()),i.unsubscribe()}})}[(Symbol.observable,a)](){return this}static from(t){const e=\"function\"==typeof this?this:v;if(null==t)throw new TypeError(t+\" is not an object\");const r=c(t,a);if(r){const n=r.call(t);if(Object(n)!==n)throw new TypeError(n+\" is not an object\");return function(t){return t instanceof v}(n)&&n.constructor===e?n:new e(t=>n.subscribe(t))}if(i(\"iterator\")){const r=c(t,s);if(r)return new e(e=>{h(()=>{if(!e.closed){for(const n of r.call(t))if(e.next(n),e.closed)return;e.complete()}})})}if(Array.isArray(t))return new e(e=>{h(()=>{if(!e.closed){for(const r of t)if(e.next(r),e.closed)return;e.complete()}})});throw new TypeError(t+\" is not observable\")}static of(...t){return new(\"function\"==typeof this?this:v)(e=>{h(()=>{if(!e.closed){for(const r of t)if(e.next(r),e.closed)return;e.complete()}})})}static get[u](){return this}}n()&&Object.defineProperty(v,Symbol(\"extensions\"),{value:{symbol:a,hostReportError:f},configurable:!0});e.a=v},function(t,e,r){\"use strict\";var n;r.d(e,\"a\",(function(){return n})),function(t){t.internalError=\"internalError\",t.message=\"message\",t.termination=\"termination\"}(n||(n={}))},function(t,e,r){\"use strict\";(function(e){void 0===e||!e.version||0===e.version.indexOf(\"v0.\")||0===e.version.indexOf(\"v1.\")&&0!==e.version.indexOf(\"v1.8.\")?t.exports={nextTick:function(t,r,n,i){if(\"function\"!=typeof t)throw new TypeError(\\'\"callback\" argument must be a function\\');var o,s,a=arguments.length;switch(a){case 0:case 1:return e.nextTick(t);case 2:return e.nextTick((function(){t.call(null,r)}));case 3:return e.nextTick((function(){t.call(null,r,n)}));case 4:return e.nextTick((function(){t.call(null,r,n,i)}));default:for(o=new Array(a-1),s=0;s0){for(;m>p-f;){let r=t[m-h]||\"0\",n=e[m-d]||\"0\";r-=g,g=0;let i=r-n;if(i<0)for(;i<0;)g++,i+=10;else g&&g--;\"\"===y&&0===i||(y=i+y),m--}\"\"!==y&&(y=\".\"+y),m--}if(l>0){for(;m>0;){let r=t[m-h]||\"0\",n=e[m-d]||\"0\";r-=g,g=0;let i=r-n;if(i<0)for(;i<0;)g++,i+=10;else g&&g--;y=i+y,m--}const r=t[0-h]||\"0\",n=e[0-d]||\"0\";let i=Number(r)-(g>0?1:0)-Number(n);0!==i&&(y=i+y),y=y.replace(/^0+/,\"\")}return\".\"===y[0]&&(y=\"0\"+y),y}t.exports=i,t.exports.default=i},function(t,e,r){\"use strict\";const n=r(5),i=r(6),o=r(33),s=r(49);function a(t,e,{format:r=\"string\",max_decimal_digits:a=100,ellipsis:u=!1}={}){\"0\"===t[0]&&(t=t.substring(1)),\"0\"===e[0]&&(e=e.substring(1));const c=t.indexOf(\".\"),l=e.indexOf(\".\"),f=-1===c?t.length:c,h=-1===l?0:e.length-1-l;let d=!1;t=t.replace(/\\\\./,\"\"),e=e.replace(/\\\\./,\"\");const p=t.length;let y,g=\"\",m=\"\",b=-1*h,v=0;for(let r=0;r\"===y){let t=1,r=i(e,e),s=e;for(;\">\"!==n(r,g);)t++,s=r,r=i(r,e);if(t=t.toString(),\"\"!==m)for(let e=t.length;e<=v;e++)m+=\"0\";m+=t,g=o(g,s),v=0}else{if(\"<\"===y){\"\"===m&&b++,v++;continue}if(\"=\"===y){if(\"\"!==m)for(let t=0;t3){m+=\"...\",d=!0;break}}else t[g]=1;const r=n(g,e);if(\">\"===r){let t=1,r=i(e,e),s=e;for(;\">\"!==n(r,g);)t++,s=r,r=i(r,e);t=t.toString();for(let e=t.length;e<=v;e++)m+=\"0\";if(m+=t,g=o(g,s),\"0\"===g)break;v=0}else{if(\"<\"===r){v++;continue}if(\"=\"===r){for(let t=0;tx){for(let t=x;t0&&(m=s(m.substring(0,m.length-S+1))),\".\"===m[0]&&(m=\"0\"+m),\"object\"===r?{quotient:m,extra_decimals:S}:m}t.exports=a,t.exports.default=a},function(t,e,r){\"use strict\";const n=r(0),i=r(5),o=r(15),s=r(8),a=r(31);function u(t,e,{infinity_minus_infinity:r=\"NaN\"}={}){t=n(t),e=n(e);const u=!(\"-\"===t[0]),c=!(\"-\"===e[0]),l=o(t),f=o(e);if(l&&f){if(u===c)return r;if(u)return\"Infinity\";if(c)return\"-Infinity\"}else{if(l)return t;if(f)return c?\"-Infinity\":\"Infinity\"}if(u){if(c){const r=i(t,e);return\">\"===r?a(t,e):\"<\"===r?\"-\"+a(e,t):\"0\"}return s(t,e.substring(1))}if(c)return\"-\"+s(t.substring(1),e);{t=t.substring(1),e=e.substring(1);const r=i(t,e);return\">\"===r?\"-\"+a(t,e):\"<\"===r?a(e,t):\"0\"}}t.exports=u,t.exports.default=u},function(t,e,r){\"use strict\";const n=r(0),i=r(5);function o(t,e){t=n(t),e=n(e);const r=\"-\"!==t[0],o=\"-\"!==e[0];return r?o?i(t,e):\">\":o?\"<\":i(e.substring(1),t.substring(1))}t.exports=o,t.exports.default=o},function(t,e,r){\"use strict\";const n=r(4),i=r(0),o=r(1),s=r(77),a=r(16),u=r(52),c=r(78),l=r(11),f=r(53),h=r(54),d=r(81),p=r(37),y=r(36),g=r(22),m=r(85);function b(t,e,{zero_to_the_power_of_zero:r=\"1\",ellipsis:b=!1,imaginary:v=!0,max_decimal_digits:w=100,fraction:x=!1}={}){t=i(t),e=i(e);const _=v&&u(t);_&&(t=t.replace(/i$/,\"\"));const S=l(t),A=l(e);if(S&&A)return r;if(A)return\"1\";const E=g(e);if(S){if(\"+\"===E)return\"0\";if(\"-\"===E)return\"Infinity\"}const k=a(e);if(\"+\"===E&&k){let r=h(t,e);return\"number\"==typeof w&&(r=y(r,{digits:w})),_&&c(e)&&(r+=\"i\"),r}if(\"-\"===E&&k){const r=\"1\",i=h(t,n(e));return o(r,i,{ellipsis:b,max_decimal_digits:w})}if(!k){e=n(e);let[r,i]=e.includes(\"/\")?e.split(\"/\"):s(e);[r,i]=m(r,i);let o=p(t,i,{imaginary:v}),a=f(r,o);return\"number\"==typeof w&&(a=y(a,{digits:w})),\"-\"===E&&(a=d(a,{fraction:x,max_decimal_digits:w})),a}}t.exports=b,t.exports.default=b},function(t,e,r){\"use strict\";const n=r(52),i=r(159);function o(t,{digits:e=0}={}){return n(t)?i(t.substring(0,t.length-1),{digits:e})+\"i\":i(t,{digits:e})}t.exports=o,t.exports.default=o},function(t,e,r){\"use strict\";const n=r(4),i=r(0),o=r(5),s=r(82),a=r(16),u=r(80),c=r(54),l=r(83);function f(t,e,{imaginary:r=!0,max_decimal_digits:f=100}={}){if(t=i(t),\"1\"===(e=i(e)))return t;if(\"1\"===t)return\"1\";if(!a(e))throw new Error(\"[preciso] can\\'t find fractional roots\");if(u(e))throw new Error(\"[preciso] can\\'t find root of negative indexes\");const h=n(t),d=u(t),p=s(e),y=d&&p;if(y&&!r)throw new Error(\"[preciso] root has an imaginary number\");const g=d&&!p?\"-\":\"\",m=l(h,e),b=[\"9\",\"8\",\"7\",\"6\",\"5\",\"4\",\"3\",\"2\",\"1\",\"0\"];let v=\"\";for(let t=0;to)return\">\";if(n\",\\'\"\\',\"`\",\" \",\"\\\\r\",\"\\\\n\",\"\\\\t\"]),c=[\"\\'\"].concat(u),l=[\"%\",\"/\",\"?\",\";\",\"#\"].concat(c),f=[\"/\",\"?\",\"#\"],h=/^[+a-z0-9A-Z_-]{0,63}$/,d=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,p={javascript:!0,\"javascript:\":!0},y={javascript:!0,\"javascript:\":!0},g={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,\"http:\":!0,\"https:\":!0,\"ftp:\":!0,\"gopher:\":!0,\"file:\":!0},m=r(137);function b(t,e,r){if(t&&\"object\"==typeof t&&t instanceof i)return t;var n=new i;return n.parse(t,e,r),n}i.prototype.parse=function(t,e,r){if(\"string\"!=typeof t)throw new TypeError(\"Parameter \\'url\\' must be a string, not \"+typeof t);var i=t.indexOf(\"?\"),s=-1!==i&&i127?R+=\"x\":R+=P[j];if(!R.match(h)){var L=O.slice(0,k),F=O.slice(k+1),N=P.match(d);N&&(L.push(N[1]),F.unshift(N[2])),F.length&&(b=\"/\"+F.join(\".\")+b),this.hostname=L.join(\".\");break}}}this.hostname.length>255?this.hostname=\"\":this.hostname=this.hostname.toLowerCase(),C||(this.hostname=n.toASCII(this.hostname));var D=this.port?\":\"+this.port:\"\",U=this.hostname||\"\";this.host=U+D,this.href+=this.host,C&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),\"/\"!==b[0]&&(b=\"/\"+b))}if(!p[x])for(k=0,I=c.length;k0)&&r.host.split(\"@\"))&&(r.auth=C.shift(),r.hostname=C.shift(),r.host=r.hostname);return r.search=t.search,r.query=t.query,null===r.pathname&&null===r.search||(r.path=(r.pathname?r.pathname:\"\")+(r.search?r.search:\"\")),r.href=r.format(),r}if(!_.length)return r.pathname=null,r.search?r.path=\"/\"+r.search:r.path=null,r.href=r.format(),r;for(var A=_.slice(-1)[0],E=(r.host||t.host||_.length>1)&&(\".\"===A||\"..\"===A)||\"\"===A,k=0,T=_.length;T>=0;T--)\".\"===(A=_[T])?_.splice(T,1):\"..\"===A?(_.splice(T,1),k++):k&&(_.splice(T,1),k--);if(!w&&!x)for(;k--;k)_.unshift(\"..\");!w||\"\"===_[0]||_[0]&&\"/\"===_[0].charAt(0)||_.unshift(\"\"),E&&\"/\"!==_.join(\"/\").substr(-1)&&_.push(\"\");var C,O=\"\"===_[0]||_[0]&&\"/\"===_[0].charAt(0);S&&(r.hostname=O?\"\":_.length?_.shift():\"\",r.host=r.hostname,(C=!!(r.host&&r.host.indexOf(\"@\")>0)&&r.host.split(\"@\"))&&(r.auth=C.shift(),r.hostname=C.shift(),r.host=r.hostname));return(w=w||r.host&&_.length)&&!O&&_.unshift(\"\"),_.length>0?r.pathname=_.join(\"/\"):(r.pathname=null,r.path=null),null===r.pathname&&null===r.search||(r.path=(r.pathname?r.pathname:\"\")+(r.search?r.search:\"\")),r.auth=t.auth||r.auth,r.slashes=r.slashes||t.slashes,r.href=r.format(),r},i.prototype.parseHost=function(){var t=this.host,e=s.exec(t);e&&(\":\"!==(e=e[0])&&(this.port=e.substr(1)),t=t.substr(0,t.length-e.length)),t&&(this.hostname=t)},e.parse=b,e.resolve=function(t,e){return b(t,!1,!0).resolve(e)},e.resolveObject=function(t,e){return t?b(t,!1,!0).resolveObject(e):e},e.format=function(t){return\"string\"==typeof t&&(t=b(t)),t instanceof i?t.format():i.prototype.format.call(t)},e.Url=i},function(t,e,r){(function(t){var n=r(131),i=r(70),o=r(133),s=r(134),a=r(39),u=e;u.request=function(e,r){e=\"string\"==typeof e?a.parse(e):o(e);var i=-1===t.location.protocol.search(/^https?:$/)?\"http:\":\"\",s=e.protocol||i,u=e.hostname||e.host,c=e.port,l=e.path||\"/\";u&&-1!==u.indexOf(\":\")&&(u=\"[\"+u+\"]\"),e.url=(u?s+\"//\"+u:\"\")+(c?\":\"+c:\"\")+l,e.method=(e.method||\"GET\").toUpperCase(),e.headers=e.headers||{};var f=new n(e);return r&&f.on(\"response\",r),f},u.get=function(t,e){var r=u.request(t,e);return r.end(),r},u.ClientRequest=n,u.IncomingMessage=i.IncomingMessage,u.Agent=function(){},u.Agent.defaultMaxSockets=4,u.globalAgent=new u.Agent,u.STATUS_CODES=s,u.METHODS=[\"CHECKOUT\",\"CONNECT\",\"COPY\",\"DELETE\",\"GET\",\"HEAD\",\"LOCK\",\"M-SEARCH\",\"MERGE\",\"MKACTIVITY\",\"MKCOL\",\"MOVE\",\"NOTIFY\",\"OPTIONS\",\"PATCH\",\"POST\",\"PROPFIND\",\"PROPPATCH\",\"PURGE\",\"PUT\",\"REPORT\",\"SEARCH\",\"SUBSCRIBE\",\"TRACE\",\"UNLOCK\",\"UNSUBSCRIBE\"]}).call(this,r(3))},,function(t,e,r){(e=t.exports=r(60)).Stream=e,e.Readable=e,e.Writable=r(65),e.Duplex=r(14),e.Transform=r(67),e.PassThrough=r(117)},function(t,e,r){var n=r(9),i=n.Buffer;function o(t,e){for(var r in t)e[r]=t[r]}function s(t,e,r){return i(t,e,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?t.exports=n:(o(n,e),e.Buffer=s),o(i,s),s.from=function(t,e,r){if(\"number\"==typeof t)throw new TypeError(\"Argument must not be a number\");return i(t,e,r)},s.alloc=function(t,e,r){if(\"number\"!=typeof t)throw new TypeError(\"Argument must be a number\");var n=i(t);return void 0!==e?\"string\"==typeof r?n.fill(e,r):n.fill(e):n.fill(0),n},s.allocUnsafe=function(t){if(\"number\"!=typeof t)throw new TypeError(\"Argument must be a number\");return i(t)},s.allocUnsafeSlow=function(t){if(\"number\"!=typeof t)throw new TypeError(\"Argument must be a number\");return n.SlowBuffer(t)}},function(t,e,r){\"use strict\";var n=SyntaxError,i=Function,o=TypeError,s=function(t){try{return i(\\'\"use strict\"; return (\\'+t+\").constructor;\")()}catch(t){}},a=Object.getOwnPropertyDescriptor;if(a)try{a({},\"\")}catch(t){a=null}var u=function(){throw new o},c=a?function(){try{return u}catch(t){try{return a(arguments,\"callee\").get}catch(t){return u}}}():u,l=r(140)(),f=r(142)(),h=Object.getPrototypeOf||(f?function(t){return t.__proto__}:null),d={},p=\"undefined\"!=typeof Uint8Array&&h?h(Uint8Array):void 0,y={\"%AggregateError%\":\"undefined\"==typeof AggregateError?void 0:AggregateError,\"%Array%\":Array,\"%ArrayBuffer%\":\"undefined\"==typeof ArrayBuffer?void 0:ArrayBuffer,\"%ArrayIteratorPrototype%\":l&&h?h([][Symbol.iterator]()):void 0,\"%AsyncFromSyncIteratorPrototype%\":void 0,\"%AsyncFunction%\":d,\"%AsyncGenerator%\":d,\"%AsyncGeneratorFunction%\":d,\"%AsyncIteratorPrototype%\":d,\"%Atomics%\":\"undefined\"==typeof Atomics?void 0:Atomics,\"%BigInt%\":\"undefined\"==typeof BigInt?void 0:BigInt,\"%BigInt64Array%\":\"undefined\"==typeof BigInt64Array?void 0:BigInt64Array,\"%BigUint64Array%\":\"undefined\"==typeof BigUint64Array?void 0:BigUint64Array,\"%Boolean%\":Boolean,\"%DataView%\":\"undefined\"==typeof DataView?void 0:DataView,\"%Date%\":Date,\"%decodeURI%\":decodeURI,\"%decodeURIComponent%\":decodeURIComponent,\"%encodeURI%\":encodeURI,\"%encodeURIComponent%\":encodeURIComponent,\"%Error%\":Error,\"%eval%\":eval,\"%EvalError%\":EvalError,\"%Float32Array%\":\"undefined\"==typeof Float32Array?void 0:Float32Array,\"%Float64Array%\":\"undefined\"==typeof Float64Array?void 0:Float64Array,\"%FinalizationRegistry%\":\"undefined\"==typeof FinalizationRegistry?void 0:FinalizationRegistry,\"%Function%\":i,\"%GeneratorFunction%\":d,\"%Int8Array%\":\"undefined\"==typeof Int8Array?void 0:Int8Array,\"%Int16Array%\":\"undefined\"==typeof Int16Array?void 0:Int16Array,\"%Int32Array%\":\"undefined\"==typeof Int32Array?void 0:Int32Array,\"%isFinite%\":isFinite,\"%isNaN%\":isNaN,\"%IteratorPrototype%\":l&&h?h(h([][Symbol.iterator]())):void 0,\"%JSON%\":\"object\"==typeof JSON?JSON:void 0,\"%Map%\":\"undefined\"==typeof Map?void 0:Map,\"%MapIteratorPrototype%\":\"undefined\"!=typeof Map&&l&&h?h((new Map)[Symbol.iterator]()):void 0,\"%Math%\":Math,\"%Number%\":Number,\"%Object%\":Object,\"%parseFloat%\":parseFloat,\"%parseInt%\":parseInt,\"%Promise%\":\"undefined\"==typeof Promise?void 0:Promise,\"%Proxy%\":\"undefined\"==typeof Proxy?void 0:Proxy,\"%RangeError%\":RangeError,\"%ReferenceError%\":ReferenceError,\"%Reflect%\":\"undefined\"==typeof Reflect?void 0:Reflect,\"%RegExp%\":RegExp,\"%Set%\":\"undefined\"==typeof Set?void 0:Set,\"%SetIteratorPrototype%\":\"undefined\"!=typeof Set&&l&&h?h((new Set)[Symbol.iterator]()):void 0,\"%SharedArrayBuffer%\":\"undefined\"==typeof SharedArrayBuffer?void 0:SharedArrayBuffer,\"%String%\":String,\"%StringIteratorPrototype%\":l&&h?h(\"\"[Symbol.iterator]()):void 0,\"%Symbol%\":l?Symbol:void 0,\"%SyntaxError%\":n,\"%ThrowTypeError%\":c,\"%TypedArray%\":p,\"%TypeError%\":o,\"%Uint8Array%\":\"undefined\"==typeof Uint8Array?void 0:Uint8Array,\"%Uint8ClampedArray%\":\"undefined\"==typeof Uint8ClampedArray?void 0:Uint8ClampedArray,\"%Uint16Array%\":\"undefined\"==typeof Uint16Array?void 0:Uint16Array,\"%Uint32Array%\":\"undefined\"==typeof Uint32Array?void 0:Uint32Array,\"%URIError%\":URIError,\"%WeakMap%\":\"undefined\"==typeof WeakMap?void 0:WeakMap,\"%WeakRef%\":\"undefined\"==typeof WeakRef?void 0:WeakRef,\"%WeakSet%\":\"undefined\"==typeof WeakSet?void 0:WeakSet};if(h)try{null.error}catch(t){var g=h(h(t));y[\"%Error.prototype%\"]=g}var m={\"%ArrayBufferPrototype%\":[\"ArrayBuffer\",\"prototype\"],\"%ArrayPrototype%\":[\"Array\",\"prototype\"],\"%ArrayProto_entries%\":[\"Array\",\"prototype\",\"entries\"],\"%ArrayProto_forEach%\":[\"Array\",\"prototype\",\"forEach\"],\"%ArrayProto_keys%\":[\"Array\",\"prototype\",\"keys\"],\"%ArrayProto_values%\":[\"Array\",\"prototype\",\"values\"],\"%AsyncFunctionPrototype%\":[\"AsyncFunction\",\"prototype\"],\"%AsyncGenerator%\":[\"AsyncGeneratorFunction\",\"prototype\"],\"%AsyncGeneratorPrototype%\":[\"AsyncGeneratorFunction\",\"prototype\",\"prototype\"],\"%BooleanPrototype%\":[\"Boolean\",\"prototype\"],\"%DataViewPrototype%\":[\"DataView\",\"prototype\"],\"%DatePrototype%\":[\"Date\",\"prototype\"],\"%ErrorPrototype%\":[\"Error\",\"prototype\"],\"%EvalErrorPrototype%\":[\"EvalError\",\"prototype\"],\"%Float32ArrayPrototype%\":[\"Float32Array\",\"prototype\"],\"%Float64ArrayPrototype%\":[\"Float64Array\",\"prototype\"],\"%FunctionPrototype%\":[\"Function\",\"prototype\"],\"%Generator%\":[\"GeneratorFunction\",\"prototype\"],\"%GeneratorPrototype%\":[\"GeneratorFunction\",\"prototype\",\"prototype\"],\"%Int8ArrayPrototype%\":[\"Int8Array\",\"prototype\"],\"%Int16ArrayPrototype%\":[\"Int16Array\",\"prototype\"],\"%Int32ArrayPrototype%\":[\"Int32Array\",\"prototype\"],\"%JSONParse%\":[\"JSON\",\"parse\"],\"%JSONStringify%\":[\"JSON\",\"stringify\"],\"%MapPrototype%\":[\"Map\",\"prototype\"],\"%NumberPrototype%\":[\"Number\",\"prototype\"],\"%ObjectPrototype%\":[\"Object\",\"prototype\"],\"%ObjProto_toString%\":[\"Object\",\"prototype\",\"toString\"],\"%ObjProto_valueOf%\":[\"Object\",\"prototype\",\"valueOf\"],\"%PromisePrototype%\":[\"Promise\",\"prototype\"],\"%PromiseProto_then%\":[\"Promise\",\"prototype\",\"then\"],\"%Promise_all%\":[\"Promise\",\"all\"],\"%Promise_reject%\":[\"Promise\",\"reject\"],\"%Promise_resolve%\":[\"Promise\",\"resolve\"],\"%RangeErrorPrototype%\":[\"RangeError\",\"prototype\"],\"%ReferenceErrorPrototype%\":[\"ReferenceError\",\"prototype\"],\"%RegExpPrototype%\":[\"RegExp\",\"prototype\"],\"%SetPrototype%\":[\"Set\",\"prototype\"],\"%SharedArrayBufferPrototype%\":[\"SharedArrayBuffer\",\"prototype\"],\"%StringPrototype%\":[\"String\",\"prototype\"],\"%SymbolPrototype%\":[\"Symbol\",\"prototype\"],\"%SyntaxErrorPrototype%\":[\"SyntaxError\",\"prototype\"],\"%TypedArrayPrototype%\":[\"TypedArray\",\"prototype\"],\"%TypeErrorPrototype%\":[\"TypeError\",\"prototype\"],\"%Uint8ArrayPrototype%\":[\"Uint8Array\",\"prototype\"],\"%Uint8ClampedArrayPrototype%\":[\"Uint8ClampedArray\",\"prototype\"],\"%Uint16ArrayPrototype%\":[\"Uint16Array\",\"prototype\"],\"%Uint32ArrayPrototype%\":[\"Uint32Array\",\"prototype\"],\"%URIErrorPrototype%\":[\"URIError\",\"prototype\"],\"%WeakMapPrototype%\":[\"WeakMap\",\"prototype\"],\"%WeakSetPrototype%\":[\"WeakSet\",\"prototype\"]},b=r(45),v=r(144),w=b.call(Function.call,Array.prototype.concat),x=b.call(Function.apply,Array.prototype.splice),_=b.call(Function.call,String.prototype.replace),S=b.call(Function.call,String.prototype.slice),A=b.call(Function.call,RegExp.prototype.exec),E=/[^%.[\\\\]]+|\\\\[(?:(-?\\\\d+(?:\\\\.\\\\d+)?)|([\"\\'])((?:(?!\\\\2)[^\\\\\\\\]|\\\\\\\\.)*?)\\\\2)\\\\]|(?=(?:\\\\.|\\\\[\\\\])(?:\\\\.|\\\\[\\\\]|%$))/g,k=/\\\\\\\\(\\\\\\\\)?/g,T=function(t){var e=S(t,0,1),r=S(t,-1);if(\"%\"===e&&\"%\"!==r)throw new n(\"invalid intrinsic syntax, expected closing `%`\");if(\"%\"===r&&\"%\"!==e)throw new n(\"invalid intrinsic syntax, expected opening `%`\");var i=[];return _(t,E,(function(t,e,r,n){i[i.length]=r?_(n,k,\"$1\"):e||t})),i},C=function(t,e){var r,i=t;if(v(m,i)&&(i=\"%\"+(r=m[i])[0]+\"%\"),v(y,i)){var a=y[i];if(a===d&&(a=function t(e){var r;if(\"%AsyncFunction%\"===e)r=s(\"async function () {}\");else if(\"%GeneratorFunction%\"===e)r=s(\"function* () {}\");else if(\"%AsyncGeneratorFunction%\"===e)r=s(\"async function* () {}\");else if(\"%AsyncGenerator%\"===e){var n=t(\"%AsyncGeneratorFunction%\");n&&(r=n.prototype)}else if(\"%AsyncIteratorPrototype%\"===e){var i=t(\"%AsyncGenerator%\");i&&h&&(r=h(i.prototype))}return y[e]=r,r}(i)),void 0===a&&!e)throw new o(\"intrinsic \"+t+\" exists, but is not available. Please file an issue!\");return{alias:r,name:i,value:a}}throw new n(\"intrinsic \"+t+\" does not exist!\")};t.exports=function(t,e){if(\"string\"!=typeof t||0===t.length)throw new o(\"intrinsic name must be a non-empty string\");if(arguments.length>1&&\"boolean\"!=typeof e)throw new o(\\'\"allowMissing\" argument must be a boolean\\');if(null===A(/^%?[^%]*%?$/,t))throw new n(\"`%` may not be present anywhere but at the beginning and end of the intrinsic name\");var r=T(t),i=r.length>0?r[0]:\"\",s=C(\"%\"+i+\"%\",e),u=s.name,c=s.value,l=!1,f=s.alias;f&&(i=f[0],x(r,w([0,1],f)));for(var h=1,d=!0;h=r.length){var b=a(c,p);c=(d=!!b)&&\"get\"in b&&!(\"originalValue\"in b.get)?b.get:c[p]}else d=v(c,p),c=c[p];d&&!l&&(y[u]=c)}}return c}},function(t,e,r){\"use strict\";var n=r(143);t.exports=Function.prototype.bind||n},function(t,e,r){\"use strict\";var n=String.prototype.replace,i=/%20/g,o=\"RFC1738\",s=\"RFC3986\";t.exports={default:s,formatters:{RFC1738:function(t){return n.call(t,i,\"+\")},RFC3986:function(t){return String(t)}},RFC1738:o,RFC3986:s}},function(t,e,r){\"use strict\";const n=r(5),i=r(11),o=r(48),s=r(8);function a(t,e,r=\"1\"){if(i(t))return\"0\";let a=t,u=t;for(;\"<\"===n(u,e);)u=s(u,r),a=o(a,u);return a}t.exports=a,t.exports.default=a},function(t,e,r){\"use strict\";const{MAX_SAFE_INTEGER_LENGTH:n}=r(30);function i(t,e){if(\"0\"===t||\"0\"===e)return\"0\";const r=t.indexOf(\".\"),i=e.indexOf(\".\"),o=(-1===r?t.length:r)+(-1===i?e.length:i),s=(-1===r?0:t.length-1-r)+(-1===i?0:e.length-1-i);if(0===s&&o=0;){const t=h,e=h-=15,r=a.substring(e,t);f.push([Number(r),r.length])}const d=[],p=[];for(let t=0,e=l-1;e>=0;e--,t++){const r=u[e],n=Number(r);let i=0,o=\"\";const s=f.length-1;f.forEach(([t,e],r)=>{let a=(i+n*t).toString();const u=a.length;if(u>e&&r!==s){const t=-1*e;o=a.slice(t)+o,i=Number(a.slice(0,t))}else{const t=e-u;for(let e=0;eNumber(t)),o.length])}const y=d.length,g=p[p.length-1][1]+y;let m=\"\",b=0;for(let t=0;t=0&&(e+=r[o])}e>=10?(e=e.toString(),m=e[e.length-1]+m,b=Number(e.slice(0,-1))):(m=e+m,b=0)}if(0===s)m=m.replace(/^0+/,\"\");else{const t=m.length-s;m=m.substring(0,t)+\".\"+m.substring(t),m=m.replace(/^0+/,\"\"),m=m.replace(/\\\\.?0+$/,\"\"),\".\"===m[0]&&(m=\"0\"+m)}return m}t.exports=i,t.exports.default=i},function(t,e,r){\"use strict\";const n=r(6),i=r(155),o=[\"5\",\"6\",\"7\",\"8\",\"9\"];function s(t){if(t.match(/\\\\.9+$/))return n(i(t),\"1\");\"+\"===t[0]&&(t=t.substring(1));const e=t.length;let r=\"\";const s=t[t.length-1];if(o.includes(s)){let n;for(n=e-2;n>=0;n--){const e=t[n];if(\".\"===e||\"-\"===e)continue;const i=Number(e)+1;if(10!==i){r=i+r;break}r=\"0\"+r}n>0&&(r=t.substring(0,n)+r)}else r=t.substring(0,e-1);return\".\"===r[r.length-1]&&(r=r.substring(0,r.length-1)),r.indexOf(\".\")>-1&&(r=r.replace(/0+$/,\"\")),r}t.exports=s,t.exports.default=s},function(t,e,r){\"use strict\";function n(t){return\"-\"===t[0]?\"-\":\"+\"}t.exports=n,t.exports.default=n},function(t,e,r){\"use strict\";const n=r(0);function i(t){const e=(t=n(t)).indexOf(\".\");return-1===e?\"0\":(t.length-e-1).toString()}t.exports=i,t.exports.default=i},function(t,e,r){\"use strict\";function n(t){return t.includes(\"i\")}t.exports=n,t.exports.default=n},function(t,e,r){\"use strict\";const n=r(79);function i(){const t=Array.from(arguments),e=\"object\"==typeof t[t.length-1]?t[t.length-1]:void 0,r=Array.isArray(t[0])?t[0]:e?t.slice(0,t.length-1):t;return n(r,e)}t.exports=i,t.exports.default=i},function(t,e,r){\"use strict\";const n=r(17);function i(t,e){const r=Number(e);let i=t;for(let e=1;et.type===c.a.internalError).map(t=>t.error);return Object.assign(t,{[u.a]:i,[u.b]:r,[u.c]:n,[u.e]:e})}function m(t,e){return f(this,void 0,void 0,(function*(){d(\"Initializing new thread\");const r=e&&e.timeout?e.timeout:y,n=(yield function(t,e,r){return f(this,void 0,void 0,(function*(){let n;const i=new Promise((t,i)=>{n=setTimeout(()=>i(Error(r)),e)}),o=yield Promise.race([t,i]);return clearTimeout(n),o}))}(function(t){return new Promise((e,r)=>{const n=i=>{var o;h(\"Message from worker before finishing initialization:\",i.data),(o=i.data)&&\"init\"===o.type?(t.removeEventListener(\"message\",n),e(i.data)):(t=>t&&\"uncaughtError\"===t.type)(i.data)&&(t.removeEventListener(\"message\",n),r(Object(s.a)(i.data.error)))};t.addEventListener(\"message\",n)})}(t),r,`Timeout: Did not receive an init message from worker after ${r}ms. Make sure the worker calls expose().`)).exposed,{termination:i,terminate:u}=function(t){const[e,r]=Object(a.a)();return{terminate:()=>f(this,void 0,void 0,(function*(){p(\"Terminating worker\"),yield t.terminate(),r()})),termination:e}}(t),m=function(t,e){return new o.a(r=>{const n=t=>{const e={type:c.a.message,data:t.data};r.next(e)},i=t=>{p(\"Unhandled promise rejection event in thread:\",t);const e={type:c.a.internalError,error:Error(t.reason)};r.next(e)};t.addEventListener(\"message\",n),t.addEventListener(\"unhandledrejection\",i),e.then(()=>{const e={type:c.a.termination};t.removeEventListener(\"message\",n),t.removeEventListener(\"unhandledrejection\",i),r.next(e),r.complete()})})}(t,i);if(\"function\"===n.type){return g(Object(l.a)(t),t,m,u)}if(\"module\"===n.type){return g(Object(l.b)(t,n.methods),t,m,u)}{const t=n.type;throw Error(\"Worker init message states unexpected type of expose(): \"+t)}}))}}).call(this,r(7))},function(t,e,r){\"use strict\";r.d(e,\"a\",(function(){return g}));var n=r(12),i=r.n(n),o=r(102),s=r(197),a=r(26);function u(t){return Promise.all(t.map(t=>{const e=t=>({status:\"fulfilled\",value:t}),r=t=>({status:\"rejected\",reason:t}),n=Promise.resolve(t);try{return n.then(e,r)}catch(t){return Promise.reject(t)}}))}var c,l=r(19);!function(t){t.initialized=\"initialized\",t.taskCanceled=\"taskCanceled\",t.taskCompleted=\"taskCompleted\",t.taskFailed=\"taskFailed\",t.taskQueued=\"taskQueued\",t.taskQueueDrained=\"taskQueueDrained\",t.taskStart=\"taskStart\",t.terminated=\"terminated\"}(c||(c={}));var f=r(24),h=function(t,e,r,n){return new(r||(r=Promise))((function(i,o){function s(t){try{u(n.next(t))}catch(t){o(t)}}function a(t){try{u(n.throw(t))}catch(t){o(t)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(s,a)}u((n=n.apply(t,e||[])).next())}))};let d=1;class p{constructor(t,e){this.eventSubject=new o.a,this.initErrors=[],this.isClosing=!1,this.nextTaskID=1,this.taskQueue=[];const r=\"number\"==typeof e?{size:e}:e||{},{size:n=l.a}=r;this.debug=i()(\"threads:pool:\"+(r.name||String(d++)).replace(/\\\\W/g,\" \").trim().replace(/\\\\s+/g,\"-\")),this.options=r,this.workers=function(t,e){return function(t){const e=[];for(let r=0;r({init:t(),runningTasks:[]}))}(t,n),this.eventObservable=Object(s.a)(a.a.from(this.eventSubject)),Promise.all(this.workers.map(t=>t.init)).then(()=>this.eventSubject.next({type:c.initialized,size:this.workers.length}),t=>{this.debug(\"Error while initializing pool worker:\",t),this.eventSubject.error(t),this.initErrors.push(t)})}findIdlingWorker(){const{concurrency:t=1}=this.options;return this.workers.find(e=>e.runningTasks.lengthh(this,void 0,void 0,(function*(){var n;yield(n=0,new Promise(t=>setTimeout(t,n)));try{yield this.runPoolTask(t,e)}finally{t.runningTasks=t.runningTasks.filter(t=>t!==r),this.isClosing||this.scheduleWork()}})))();t.runningTasks.push(r)}))}scheduleWork(){this.debug(\"Attempt de-queueing a task in order to run it...\");const t=this.findIdlingWorker();if(!t)return;const e=this.taskQueue.shift();if(!e)return this.debug(\"Task queue is empty\"),void this.eventSubject.next({type:c.taskQueueDrained});this.run(t,e)}taskCompletion(t){return new Promise((e,r)=>{const n=this.events().subscribe(i=>{i.type===c.taskCompleted&&i.taskID===t?(n.unsubscribe(),e(i.returnValue)):i.type===c.taskFailed&&i.taskID===t?(n.unsubscribe(),r(i.error)):i.type===c.terminated&&(n.unsubscribe(),r(Error(\"Pool has been terminated before task was run.\")))})})}settled(t=!1){return h(this,void 0,void 0,(function*(){const e=()=>{return t=this.workers,e=t=>t.runningTasks,t.reduce((t,r)=>[...t,...e(r)],[]);var t,e},r=[],n=this.eventObservable.subscribe(t=>{t.type===c.taskFailed&&r.push(t.error)});return this.initErrors.length>0?Promise.reject(this.initErrors[0]):t&&0===this.taskQueue.length?(yield u(e()),r):(yield new Promise((t,e)=>{const r=this.eventObservable.subscribe({next(e){e.type===c.taskQueueDrained&&(r.unsubscribe(),t(void 0))},error:e})}),yield u(e()),n.unsubscribe(),r)}))}completed(t=!1){return h(this,void 0,void 0,(function*(){const e=this.settled(t),r=new Promise((t,r)=>{const n=this.eventObservable.subscribe({next(i){i.type===c.taskQueueDrained?(n.unsubscribe(),t(e)):i.type===c.taskFailed&&(n.unsubscribe(),r(i.error))},error:r})}),n=yield Promise.race([e,r]);if(n.length>0)throw n[0]}))}events(){return this.eventObservable}queue(t){const{maxQueuedJobs:e=1/0}=this.options;if(this.isClosing)throw Error(\"Cannot schedule pool tasks after terminate() has been called.\");if(this.initErrors.length>0)throw this.initErrors[0];const r=this.nextTaskID++,n=this.taskCompletion(r);n.catch(t=>{this.debug(`Task #${r} errored:`,t)});const i={id:r,run:t,cancel:()=>{-1!==this.taskQueue.indexOf(i)&&(this.taskQueue=this.taskQueue.filter(t=>t!==i),this.eventSubject.next({type:c.taskCanceled,taskID:i.id}))},then:n.then.bind(n)};if(this.taskQueue.length>=e)throw Error(\"Maximum number of pool tasks queued. Refusing to queue another one.\\\\nThis usually happens for one of two reasons: We are either at peak workload right now or some tasks just won\\'t finish, thus blocking the pool.\");return this.debug(`Queueing task #${i.id}...`),this.taskQueue.push(i),this.eventSubject.next({type:c.taskQueued,taskID:i.id}),this.scheduleWork(),i}terminate(t){return h(this,void 0,void 0,(function*(){this.isClosing=!0,t||(yield this.completed(!0)),this.eventSubject.next({type:c.terminated,remainingQueue:[...this.taskQueue]}),this.eventSubject.complete(),yield Promise.all(this.workers.map(t=>h(this,void 0,void 0,(function*(){return f.a.terminate(yield t.init)}))))}))}}function y(t,e){return new p(t,e)}p.EventType=c,y.EventType=c;const g=y},function(t,e,r){\"use strict\";r.d(e,\"a\",(function(){return b})),r.d(e,\"b\",(function(){return v}));var n=r(12),i=r.n(n),o=r(26),s=r(197),a=r(13);const u=()=>{},c=t=>t,l=t=>Promise.resolve().then(t);function f(t){throw t}class h extends o.a{constructor(t){super(e=>{const r=this,n=Object.assign(Object.assign({},e),{complete(){e.complete(),r.onCompletion()},error(t){e.error(t),r.onError(t)},next(t){e.next(t),r.onNext(t)}});try{return this.initHasRun=!0,t(n)}catch(t){n.error(t)}}),this.initHasRun=!1,this.fulfillmentCallbacks=[],this.rejectionCallbacks=[],this.firstValueSet=!1,this.state=\"pending\"}onNext(t){this.firstValueSet||(this.firstValue=t,this.firstValueSet=!0)}onError(t){this.state=\"rejected\",this.rejection=t;for(const e of this.rejectionCallbacks)l(()=>e(t))}onCompletion(){this.state=\"fulfilled\";for(const t of this.fulfillmentCallbacks)l(()=>t(this.firstValue))}then(t,e){const r=t||c,n=e||f;let i=!1;return new Promise((t,e)=>{const o=r=>{if(!i){i=!0;try{t(n(r))}catch(t){e(t)}}};return this.initHasRun||this.subscribe({error:o}),\"fulfilled\"===this.state?t(r(this.firstValue)):\"rejected\"===this.state?(i=!0,t(n(this.rejection))):(this.fulfillmentCallbacks.push(e=>{try{t(r(e))}catch(t){o(t)}}),void this.rejectionCallbacks.push(o))})}catch(t){return this.then(void 0,t)}finally(t){const e=t||u;return this.then(t=>(e(),t),()=>e())}static from(t){return function(t){return t&&\"function\"==typeof t.then}(t)?new h(e=>{t.then(t=>{e.next(t),e.complete()},t=>{e.error(t)})}):super.from(t)}}var d=r(104),p=r(20);const y=i()(\"threads:master:messages\");let g=1;function m(t,e){return new o.a(r=>{let n;const i=o=>{var s;if(y(\"Message from worker:\",o.data),o.data&&o.data.uid===e)if((s=o.data)&&s.type===p.b.running)n=o.data.resultType;else if((t=>t&&t.type===p.b.result)(o.data))\"promise\"===n?(void 0!==o.data.payload&&r.next(Object(a.a)(o.data.payload)),r.complete(),t.removeEventListener(\"message\",i)):(o.data.payload&&r.next(Object(a.a)(o.data.payload)),o.data.complete&&(r.complete(),t.removeEventListener(\"message\",i)));else if((t=>t&&t.type===p.b.error)(o.data)){const e=Object(a.a)(o.data.error);r.error(e),t.removeEventListener(\"message\",i)}};return t.addEventListener(\"message\",i),()=>{if(\"observable\"===n||!n){const r={type:p.a.cancel,uid:e};t.postMessage(r)}t.removeEventListener(\"message\",i)}})}function b(t,e){return(...r)=>{const n=g++,{args:i,transferables:o}=function(t){if(0===t.length)return{args:[],transferables:[]};const e=[],r=[];for(const n of t)Object(d.a)(n)?(e.push(Object(a.b)(n.send)),r.push(...n.transferables)):e.push(Object(a.b)(n));return{args:e,transferables:0===r.length?r:(n=r,Array.from(new Set(n)))};var n}(r),u={type:p.a.run,uid:n,method:e,args:i};y(\"Sending command to run function to worker:\",u);try{t.postMessage(u,o)}catch(t){return h.from(Promise.reject(t))}return h.from(Object(s.a)(m(t,n)))}}function v(t,e){const r={};for(const n of e)r[n]=b(t,n);return r}},function(t,e,r){\"use strict\";(function(e,n){var i=r(28);t.exports=v;var o,s=r(61);v.ReadableState=b;r(62).EventEmitter;var a=function(t,e){return t.listeners(e).length},u=r(63),c=r(43).Buffer,l=(void 0!==e?e:\"undefined\"!=typeof window?window:\"undefined\"!=typeof self?self:{}).Uint8Array||function(){};var f=Object.create(r(21));f.inherits=r(10);var h=r(110),d=void 0;d=h&&h.debuglog?h.debuglog(\"stream\"):function(){};var p,y=r(111),g=r(64);f.inherits(v,u);var m=[\"error\",\"close\",\"destroy\",\"pause\",\"resume\"];function b(t,e){t=t||{};var n=e instanceof(o=o||r(14));this.objectMode=!!t.objectMode,n&&(this.objectMode=this.objectMode||!!t.readableObjectMode);var i=t.highWaterMark,s=t.readableHighWaterMark,a=this.objectMode?16:16384;this.highWaterMark=i||0===i?i:n&&(s||0===s)?s:a,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new y,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=t.defaultEncoding||\"utf8\",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(p||(p=r(66).StringDecoder),this.decoder=new p(t.encoding),this.encoding=t.encoding)}function v(t){if(o=o||r(14),!(this instanceof v))return new v(t);this._readableState=new b(t,this),this.readable=!0,t&&(\"function\"==typeof t.read&&(this._read=t.read),\"function\"==typeof t.destroy&&(this._destroy=t.destroy)),u.call(this)}function w(t,e,r,n,i){var o,s=t._readableState;null===e?(s.reading=!1,function(t,e){if(e.ended)return;if(e.decoder){var r=e.decoder.end();r&&r.length&&(e.buffer.push(r),e.length+=e.objectMode?1:r.length)}e.ended=!0,S(t)}(t,s)):(i||(o=function(t,e){var r;n=e,c.isBuffer(n)||n instanceof l||\"string\"==typeof e||void 0===e||t.objectMode||(r=new TypeError(\"Invalid non-string/buffer chunk\"));var n;return r}(s,e)),o?t.emit(\"error\",o):s.objectMode||e&&e.length>0?(\"string\"==typeof e||s.objectMode||Object.getPrototypeOf(e)===c.prototype||(e=function(t){return c.from(t)}(e)),n?s.endEmitted?t.emit(\"error\",new Error(\"stream.unshift() after end event\")):x(t,s,e,!0):s.ended?t.emit(\"error\",new Error(\"stream.push() after EOF\")):(s.reading=!1,s.decoder&&!r?(e=s.decoder.write(e),s.objectMode||0!==e.length?x(t,s,e,!1):E(t,s)):x(t,s,e,!1))):n||(s.reading=!1));return function(t){return!t.ended&&(t.needReadable||t.lengthe.highWaterMark&&(e.highWaterMark=function(t){return t>=8388608?t=8388608:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}function S(t){var e=t._readableState;e.needReadable=!1,e.emittedReadable||(d(\"emitReadable\",e.flowing),e.emittedReadable=!0,e.sync?i.nextTick(A,t):A(t))}function A(t){d(\"emit readable\"),t.emit(\"readable\"),O(t)}function E(t,e){e.readingMore||(e.readingMore=!0,i.nextTick(k,t,e))}function k(t,e){for(var r=e.length;!e.reading&&!e.flowing&&!e.ended&&e.length=e.length?(r=e.decoder?e.buffer.join(\"\"):1===e.buffer.length?e.buffer.head.data:e.buffer.concat(e.length),e.buffer.clear()):r=function(t,e,r){var n;to.length?o.length:t;if(s===o.length?i+=o:i+=o.slice(0,t),0===(t-=s)){s===o.length?(++n,r.next?e.head=r.next:e.head=e.tail=null):(e.head=r,r.data=o.slice(s));break}++n}return e.length-=n,i}(t,e):function(t,e){var r=c.allocUnsafe(t),n=e.head,i=1;n.data.copy(r),t-=n.data.length;for(;n=n.next;){var o=n.data,s=t>o.length?o.length:t;if(o.copy(r,r.length-t,0,s),0===(t-=s)){s===o.length?(++i,n.next?e.head=n.next:e.head=e.tail=null):(e.head=n,n.data=o.slice(s));break}++i}return e.length-=i,r}(t,e);return n}(t,e.buffer,e.decoder),r);var r}function P(t){var e=t._readableState;if(e.length>0)throw new Error(\\'\"endReadable()\" called on non-empty stream\\');e.endEmitted||(e.ended=!0,i.nextTick(R,e,t))}function R(t,e){t.endEmitted||0!==t.length||(t.endEmitted=!0,e.readable=!1,e.emit(\"end\"))}function j(t,e){for(var r=0,n=t.length;r=e.highWaterMark||e.ended))return d(\"read: emitReadable\",e.length,e.ended),0===e.length&&e.ended?P(this):S(this),null;if(0===(t=_(t,e))&&e.ended)return 0===e.length&&P(this),null;var n,i=e.needReadable;return d(\"need readable\",i),(0===e.length||e.length-t0?I(t,e):null)?(e.needReadable=!0,t=0):e.length-=t,0===e.length&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&P(this)),null!==n&&this.emit(\"data\",n),n},v.prototype._read=function(t){this.emit(\"error\",new Error(\"_read() is not implemented\"))},v.prototype.pipe=function(t,e){var r=this,o=this._readableState;switch(o.pipesCount){case 0:o.pipes=t;break;case 1:o.pipes=[o.pipes,t];break;default:o.pipes.push(t)}o.pipesCount+=1,d(\"pipe count=%d opts=%j\",o.pipesCount,e);var u=(!e||!1!==e.end)&&t!==n.stdout&&t!==n.stderr?l:v;function c(e,n){d(\"onunpipe\"),e===r&&n&&!1===n.hasUnpiped&&(n.hasUnpiped=!0,d(\"cleanup\"),t.removeListener(\"close\",m),t.removeListener(\"finish\",b),t.removeListener(\"drain\",f),t.removeListener(\"error\",g),t.removeListener(\"unpipe\",c),r.removeListener(\"end\",l),r.removeListener(\"end\",v),r.removeListener(\"data\",y),h=!0,!o.awaitDrain||t._writableState&&!t._writableState.needDrain||f())}function l(){d(\"onend\"),t.end()}o.endEmitted?i.nextTick(u):r.once(\"end\",u),t.on(\"unpipe\",c);var f=function(t){return function(){var e=t._readableState;d(\"pipeOnDrain\",e.awaitDrain),e.awaitDrain&&e.awaitDrain--,0===e.awaitDrain&&a(t,\"data\")&&(e.flowing=!0,O(t))}}(r);t.on(\"drain\",f);var h=!1;var p=!1;function y(e){d(\"ondata\"),p=!1,!1!==t.write(e)||p||((1===o.pipesCount&&o.pipes===t||o.pipesCount>1&&-1!==j(o.pipes,t))&&!h&&(d(\"false write response, pause\",o.awaitDrain),o.awaitDrain++,p=!0),r.pause())}function g(e){d(\"onerror\",e),v(),t.removeListener(\"error\",g),0===a(t,\"error\")&&t.emit(\"error\",e)}function m(){t.removeListener(\"finish\",b),v()}function b(){d(\"onfinish\"),t.removeListener(\"close\",m),v()}function v(){d(\"unpipe\"),r.unpipe(t)}return r.on(\"data\",y),function(t,e,r){if(\"function\"==typeof t.prependListener)return t.prependListener(e,r);t._events&&t._events[e]?s(t._events[e])?t._events[e].unshift(r):t._events[e]=[r,t._events[e]]:t.on(e,r)}(t,\"error\",g),t.once(\"close\",m),t.once(\"finish\",b),t.emit(\"pipe\",r),o.flowing||(d(\"pipe resume\"),r.resume()),t},v.prototype.unpipe=function(t){var e=this._readableState,r={hasUnpiped:!1};if(0===e.pipesCount)return this;if(1===e.pipesCount)return t&&t!==e.pipes||(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit(\"unpipe\",this,r)),this;if(!t){var n=e.pipes,i=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var o=0;o0&&s.length>i&&!s.warned){s.warned=!0;var u=new Error(\"Possible EventEmitter memory leak detected. \"+s.length+\" \"+String(e)+\" listeners added. Use emitter.setMaxListeners() to increase limit\");u.name=\"MaxListenersExceededWarning\",u.emitter=t,u.type=e,u.count=s.length,a=u,console&&console.warn&&console.warn(a)}return t}function h(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function d(t,e,r){var n={fired:!1,wrapFn:void 0,target:t,type:e,listener:r},i=h.bind(n);return i.listener=r,n.wrapFn=i,i}function p(t,e,r){var n=t._events;if(void 0===n)return[];var i=n[e];return void 0===i?[]:\"function\"==typeof i?r?[i.listener||i]:[i]:r?function(t){for(var e=new Array(t.length),r=0;r0&&(s=e[0]),s instanceof Error)throw s;var a=new Error(\"Unhandled error.\"+(s?\" (\"+s.message+\")\":\"\"));throw a.context=s,a}var u=i[t];if(void 0===u)return!1;if(\"function\"==typeof u)o(u,this,e);else{var c=u.length,l=g(u,c);for(r=0;r=0;o--)if(r[o]===e||r[o].listener===e){s=r[o].listener,i=o;break}if(i<0)return this;0===i?r.shift():function(t,e){for(;e+1=0;n--)this.removeListener(t,e[n]);return this},a.prototype.listeners=function(t){return p(this,t,!0)},a.prototype.rawListeners=function(t){return p(this,t,!1)},a.listenerCount=function(t,e){return\"function\"==typeof t.listenerCount?t.listenerCount(e):y.call(t,e)},a.prototype.listenerCount=y,a.prototype.eventNames=function(){return this._eventsCount>0?n(this._events):[]}},function(t,e,r){t.exports=r(62).EventEmitter},function(t,e,r){\"use strict\";var n=r(28);function i(t,e){t.emit(\"error\",e)}t.exports={destroy:function(t,e){var r=this,o=this._readableState&&this._readableState.destroyed,s=this._writableState&&this._writableState.destroyed;return o||s?(e?e(t):t&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,n.nextTick(i,this,t)):n.nextTick(i,this,t)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(t||null,(function(t){!e&&t?r._writableState?r._writableState.errorEmitted||(r._writableState.errorEmitted=!0,n.nextTick(i,r,t)):n.nextTick(i,r,t):e&&e(t)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},function(t,e,r){\"use strict\";(function(e,n,i){var o=r(28);function s(t){var e=this;this.next=null,this.entry=null,this.finish=function(){!function(t,e,r){var n=t.entry;t.entry=null;for(;n;){var i=n.callback;e.pendingcb--,i(r),n=n.next}e.corkedRequestsFree.next=t}(e,t)}}t.exports=b;var a,u=!e.browser&&[\"v0.10\",\"v0.9.\"].indexOf(e.version.slice(0,5))>-1?n:o.nextTick;b.WritableState=m;var c=Object.create(r(21));c.inherits=r(10);var l={deprecate:r(115)},f=r(63),h=r(43).Buffer,d=(void 0!==i?i:\"undefined\"!=typeof window?window:\"undefined\"!=typeof self?self:{}).Uint8Array||function(){};var p,y=r(64);function g(){}function m(t,e){a=a||r(14),t=t||{};var n=e instanceof a;this.objectMode=!!t.objectMode,n&&(this.objectMode=this.objectMode||!!t.writableObjectMode);var i=t.highWaterMark,c=t.writableHighWaterMark,l=this.objectMode?16:16384;this.highWaterMark=i||0===i?i:n&&(c||0===c)?c:l,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var f=!1===t.decodeStrings;this.decodeStrings=!f,this.defaultEncoding=t.defaultEncoding||\"utf8\",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(t){!function(t,e){var r=t._writableState,n=r.sync,i=r.writecb;if(function(t){t.writing=!1,t.writecb=null,t.length-=t.writelen,t.writelen=0}(r),e)!function(t,e,r,n,i){--e.pendingcb,r?(o.nextTick(i,n),o.nextTick(A,t,e),t._writableState.errorEmitted=!0,t.emit(\"error\",n)):(i(n),t._writableState.errorEmitted=!0,t.emit(\"error\",n),A(t,e))}(t,r,n,e,i);else{var s=_(r);s||r.corked||r.bufferProcessing||!r.bufferedRequest||x(t,r),n?u(w,t,r,s,i):w(t,r,s,i)}}(e,t)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new s(this)}function b(t){if(a=a||r(14),!(p.call(b,this)||this instanceof a))return new b(t);this._writableState=new m(t,this),this.writable=!0,t&&(\"function\"==typeof t.write&&(this._write=t.write),\"function\"==typeof t.writev&&(this._writev=t.writev),\"function\"==typeof t.destroy&&(this._destroy=t.destroy),\"function\"==typeof t.final&&(this._final=t.final)),f.call(this)}function v(t,e,r,n,i,o,s){e.writelen=n,e.writecb=s,e.writing=!0,e.sync=!0,r?t._writev(i,e.onwrite):t._write(i,o,e.onwrite),e.sync=!1}function w(t,e,r,n){r||function(t,e){0===e.length&&e.needDrain&&(e.needDrain=!1,t.emit(\"drain\"))}(t,e),e.pendingcb--,n(),A(t,e)}function x(t,e){e.bufferProcessing=!0;var r=e.bufferedRequest;if(t._writev&&r&&r.next){var n=e.bufferedRequestCount,i=new Array(n),o=e.corkedRequestsFree;o.entry=r;for(var a=0,u=!0;r;)i[a]=r,r.isBuf||(u=!1),r=r.next,a+=1;i.allBuffers=u,v(t,e,!0,e.length,i,\"\",o.finish),e.pendingcb++,e.lastBufferedRequest=null,o.next?(e.corkedRequestsFree=o.next,o.next=null):e.corkedRequestsFree=new s(e),e.bufferedRequestCount=0}else{for(;r;){var c=r.chunk,l=r.encoding,f=r.callback;if(v(t,e,!1,e.objectMode?1:c.length,c,l,f),r=r.next,e.bufferedRequestCount--,e.writing)break}null===r&&(e.lastBufferedRequest=null)}e.bufferedRequest=r,e.bufferProcessing=!1}function _(t){return t.ending&&0===t.length&&null===t.bufferedRequest&&!t.finished&&!t.writing}function S(t,e){t._final((function(r){e.pendingcb--,r&&t.emit(\"error\",r),e.prefinished=!0,t.emit(\"prefinish\"),A(t,e)}))}function A(t,e){var r=_(e);return r&&(!function(t,e){e.prefinished||e.finalCalled||(\"function\"==typeof t._final?(e.pendingcb++,e.finalCalled=!0,o.nextTick(S,t,e)):(e.prefinished=!0,t.emit(\"prefinish\")))}(t,e),0===e.pendingcb&&(e.finished=!0,t.emit(\"finish\"))),r}c.inherits(b,f),m.prototype.getBuffer=function(){for(var t=this.bufferedRequest,e=[];t;)e.push(t),t=t.next;return e},function(){try{Object.defineProperty(m.prototype,\"buffer\",{get:l.deprecate((function(){return this.getBuffer()}),\"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.\",\"DEP0003\")})}catch(t){}}(),\"function\"==typeof Symbol&&Symbol.hasInstance&&\"function\"==typeof Function.prototype[Symbol.hasInstance]?(p=Function.prototype[Symbol.hasInstance],Object.defineProperty(b,Symbol.hasInstance,{value:function(t){return!!p.call(this,t)||this===b&&(t&&t._writableState instanceof m)}})):p=function(t){return t instanceof this},b.prototype.pipe=function(){this.emit(\"error\",new Error(\"Cannot pipe, not readable\"))},b.prototype.write=function(t,e,r){var n,i=this._writableState,s=!1,a=!i.objectMode&&(n=t,h.isBuffer(n)||n instanceof d);return a&&!h.isBuffer(t)&&(t=function(t){return h.from(t)}(t)),\"function\"==typeof e&&(r=e,e=null),a?e=\"buffer\":e||(e=i.defaultEncoding),\"function\"!=typeof r&&(r=g),i.ended?function(t,e){var r=new Error(\"write after end\");t.emit(\"error\",r),o.nextTick(e,r)}(this,r):(a||function(t,e,r,n){var i=!0,s=!1;return null===r?s=new TypeError(\"May not write null values to stream\"):\"string\"==typeof r||void 0===r||e.objectMode||(s=new TypeError(\"Invalid non-string/buffer chunk\")),s&&(t.emit(\"error\",s),o.nextTick(n,s),i=!1),i}(this,i,t,r))&&(i.pendingcb++,s=function(t,e,r,n,i,o){if(!r){var s=function(t,e,r){t.objectMode||!1===t.decodeStrings||\"string\"!=typeof e||(e=h.from(e,r));return e}(e,n,i);n!==s&&(r=!0,i=\"buffer\",n=s)}var a=e.objectMode?1:n.length;e.length+=a;var u=e.length-1))throw new TypeError(\"Unknown encoding: \"+t);return this._writableState.defaultEncoding=t,this},Object.defineProperty(b.prototype,\"writableHighWaterMark\",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),b.prototype._write=function(t,e,r){r(new Error(\"_write() is not implemented\"))},b.prototype._writev=null,b.prototype.end=function(t,e,r){var n=this._writableState;\"function\"==typeof t?(r=t,t=null,e=null):\"function\"==typeof e&&(r=e,e=null),null!=t&&this.write(t,e),n.corked&&(n.corked=1,this.uncork()),n.ending||function(t,e,r){e.ending=!0,A(t,e),r&&(e.finished?o.nextTick(r):t.once(\"finish\",r));e.ended=!0,t.writable=!1}(this,n,r)},Object.defineProperty(b.prototype,\"destroyed\",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(t){this._writableState&&(this._writableState.destroyed=t)}}),b.prototype.destroy=y.destroy,b.prototype._undestroy=y.undestroy,b.prototype._destroy=function(t,e){this.end(),e(t)}}).call(this,r(7),r(113).setImmediate,r(3))},function(t,e,r){\"use strict\";var n=r(116).Buffer,i=n.isEncoding||function(t){switch((t=\"\"+t)&&t.toLowerCase()){case\"hex\":case\"utf8\":case\"utf-8\":case\"ascii\":case\"binary\":case\"base64\":case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":case\"raw\":return!0;default:return!1}};function o(t){var e;switch(this.encoding=function(t){var e=function(t){if(!t)return\"utf8\";for(var e;;)switch(t){case\"utf8\":case\"utf-8\":return\"utf8\";case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return\"utf16le\";case\"latin1\":case\"binary\":return\"latin1\";case\"base64\":case\"ascii\":case\"hex\":return t;default:if(e)return;t=(\"\"+t).toLowerCase(),e=!0}}(t);if(\"string\"!=typeof e&&(n.isEncoding===i||!i(t)))throw new Error(\"Unknown encoding: \"+t);return e||t}(t),this.encoding){case\"utf16le\":this.text=u,this.end=c,e=4;break;case\"utf8\":this.fillLast=a,e=4;break;case\"base64\":this.text=l,this.end=f,e=3;break;default:return this.write=h,void(this.end=d)}this.lastNeed=0,this.lastTotal=0,this.lastChar=n.allocUnsafe(e)}function s(t){return t<=127?0:t>>5==6?2:t>>4==14?3:t>>3==30?4:-1}function a(t){var e=this.lastTotal-this.lastNeed,r=function(t,e,r){if(128!=(192&e[0]))return t.lastNeed=0,\"�\".repeat(r);if(t.lastNeed>1&&e.length>1){if(128!=(192&e[1]))return t.lastNeed=1,\"�\".repeat(r+1);if(t.lastNeed>2&&e.length>2&&128!=(192&e[2]))return t.lastNeed=2,\"�\".repeat(r+2)}}(this,t,e);return void 0!==r?r:this.lastNeed<=t.length?(t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(t.copy(this.lastChar,e,0,t.length),void(this.lastNeed-=t.length))}function u(t,e){if((t.length-e)%2==0){var r=t.toString(\"utf16le\",e);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString(\"utf16le\",e,t.length-1)}function c(t){var e=t&&t.length?this.write(t):\"\";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return e+this.lastChar.toString(\"utf16le\",0,r)}return e}function l(t,e){var r=(t.length-e)%3;return 0===r?t.toString(\"base64\",e):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString(\"base64\",e,t.length-r))}function f(t){var e=t&&t.length?this.write(t):\"\";return this.lastNeed?e+this.lastChar.toString(\"base64\",0,3-this.lastNeed):e}function h(t){return t.toString(this.encoding)}function d(t){return t&&t.length?this.write(t):\"\"}e.StringDecoder=o,o.prototype.write=function(t){if(0===t.length)return\"\";var e,r;if(this.lastNeed){if(void 0===(e=this.fillLast(t)))return\"\";r=this.lastNeed,this.lastNeed=0}else r=0;return r=0)return i>0&&(t.lastNeed=i-1),i;if(--n=0)return i>0&&(t.lastNeed=i-2),i;if(--n=0)return i>0&&(2===i?i=0:t.lastNeed=i-3),i;return 0}(this,t,e);if(!this.lastNeed)return t.toString(\"utf8\",e);this.lastTotal=r;var n=t.length-(r-this.lastNeed);return t.copy(this.lastChar,0,n),t.toString(\"utf8\",e,n)},o.prototype.fillLast=function(t){if(this.lastNeed<=t.length)return t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,t.length),this.lastNeed-=t.length}},function(t,e,r){\"use strict\";t.exports=s;var n=r(14),i=Object.create(r(21));function o(t,e){var r=this._transformState;r.transforming=!1;var n=r.writecb;if(!n)return this.emit(\"error\",new Error(\"write callback called multiple times\"));r.writechunk=null,r.writecb=null,null!=e&&this.push(e),n(t);var i=this._readableState;i.reading=!1,(i.needReadable||i.lengthObject(o.a)(r),e)}async decode(t,e){return new Promise((r,n)=>{this.pool.queue(async i=>{try{const n=await i(t,e);r(n)}catch(t){n(t)}})})}destroy(){this.pool.terminate(!0)}}}).call(this,r(128))},function(t,e,r){(function(t){e.fetch=a(t.fetch)&&a(t.ReadableStream),e.writableStream=a(t.WritableStream),e.abortController=a(t.AbortController),e.blobConstructor=!1;try{new Blob([new ArrayBuffer(1)]),e.blobConstructor=!0}catch(t){}var r;function n(){if(void 0!==r)return r;if(t.XMLHttpRequest){r=new t.XMLHttpRequest;try{r.open(\"GET\",t.XDomainRequest?\"/\":\"https://example.com\")}catch(t){r=null}}else r=null;return r}function i(t){var e=n();if(!e)return!1;try{return e.responseType=t,e.responseType===t}catch(t){}return!1}var o=void 0!==t.ArrayBuffer,s=o&&a(t.ArrayBuffer.prototype.slice);function a(t){return\"function\"==typeof t}e.arraybuffer=e.fetch||o&&i(\"arraybuffer\"),e.msstream=!e.fetch&&s&&i(\"ms-stream\"),e.mozchunkedarraybuffer=!e.fetch&&o&&i(\"moz-chunked-arraybuffer\"),e.overrideMimeType=e.fetch||!!n()&&a(n().overrideMimeType),e.vbArray=a(t.VBArray),r=null}).call(this,r(3))},function(t,e,r){(function(t,n,i){var o=r(69),s=r(10),a=r(42),u=e.readyStates={UNSENT:0,OPENED:1,HEADERS_RECEIVED:2,LOADING:3,DONE:4},c=e.IncomingMessage=function(e,r,s,u){var c=this;if(a.Readable.call(c),c._mode=s,c.headers={},c.rawHeaders=[],c.trailers={},c.rawTrailers=[],c.on(\"end\",(function(){t.nextTick((function(){c.emit(\"close\")}))})),\"fetch\"===s){if(c._fetchResponse=r,c.url=r.url,c.statusCode=r.status,c.statusMessage=r.statusText,r.headers.forEach((function(t,e){c.headers[e.toLowerCase()]=t,c.rawHeaders.push(e,t)})),o.writableStream){var l=new WritableStream({write:function(t){return new Promise((function(e,r){c._destroyed?r():c.push(new n(t))?e():c._resumeFetch=e}))},close:function(){i.clearTimeout(u),c._destroyed||c.push(null)},abort:function(t){c._destroyed||c.emit(\"error\",t)}});try{return void r.body.pipeTo(l).catch((function(t){i.clearTimeout(u),c._destroyed||c.emit(\"error\",t)}))}catch(t){}}var f=r.body.getReader();!function t(){f.read().then((function(e){if(!c._destroyed){if(e.done)return i.clearTimeout(u),void c.push(null);c.push(new n(e.value)),t()}})).catch((function(t){i.clearTimeout(u),c._destroyed||c.emit(\"error\",t)}))}()}else{if(c._xhr=e,c._pos=0,c.url=e.responseURL,c.statusCode=e.status,c.statusMessage=e.statusText,e.getAllResponseHeaders().split(/\\\\r?\\\\n/).forEach((function(t){var e=t.match(/^([^:]+):\\\\s*(.*)/);if(e){var r=e[1].toLowerCase();\"set-cookie\"===r?(void 0===c.headers[r]&&(c.headers[r]=[]),c.headers[r].push(e[2])):void 0!==c.headers[r]?c.headers[r]+=\", \"+e[2]:c.headers[r]=e[2],c.rawHeaders.push(e[1],e[2])}})),c._charset=\"x-user-defined\",!o.overrideMimeType){var h=c.rawHeaders[\"mime-type\"];if(h){var d=h.match(/;\\\\s*charset=([^;])(;|$)/);d&&(c._charset=d[1].toLowerCase())}c._charset||(c._charset=\"utf-8\")}}};s(c,a.Readable),c.prototype._read=function(){var t=this._resumeFetch;t&&(this._resumeFetch=null,t())},c.prototype._onXHRProgress=function(){var t=this,e=t._xhr,r=null;switch(t._mode){case\"text:vbarray\":if(e.readyState!==u.DONE)break;try{r=new i.VBArray(e.responseBody).toArray()}catch(t){}if(null!==r){t.push(new n(r));break}case\"text\":try{r=e.responseText}catch(e){t._mode=\"text:vbarray\";break}if(r.length>t._pos){var o=r.substr(t._pos);if(\"x-user-defined\"===t._charset){for(var s=new n(o.length),a=0;at._pos&&(t.push(new n(new Uint8Array(c.result.slice(t._pos)))),t._pos=c.result.byteLength)},c.onload=function(){t.push(null)},c.readAsArrayBuffer(r)}t._xhr.readyState===u.DONE&&\"ms-stream\"!==t._mode&&t.push(null)}}).call(this,r(7),r(9).Buffer,r(3))},function(t,e,r){\"use strict\";var n=r(46),i=Object.prototype.hasOwnProperty,o=Array.isArray,s=function(){for(var t=[],e=0;e<256;++e)t.push(\"%\"+((e<16?\"0\":\"\")+e.toString(16)).toUpperCase());return t}(),a=function(t,e){for(var r=e&&e.plainObjects?Object.create(null):{},n=0;n1;){var e=t.pop(),r=e.obj[e.prop];if(o(r)){for(var n=[],i=0;i=48&&l<=57||l>=65&&l<=90||l>=97&&l<=122||o===n.RFC1738&&(40===l||41===l)?u+=a.charAt(c):l<128?u+=s[l]:l<2048?u+=s[192|l>>6]+s[128|63&l]:l<55296||l>=57344?u+=s[224|l>>12]+s[128|l>>6&63]+s[128|63&l]:(c+=1,l=65536+((1023&l)<<10|1023&a.charCodeAt(c)),u+=s[240|l>>18]+s[128|l>>12&63]+s[128|l>>6&63]+s[128|63&l])}return u},isBuffer:function(t){return!(!t||\"object\"!=typeof t)&&!!(t.constructor&&t.constructor.isBuffer&&t.constructor.isBuffer(t))},isRegExp:function(t){return\"[object RegExp]\"===Object.prototype.toString.call(t)},maybeMap:function(t,e){if(o(t)){for(var r=[],n=0;ne++t.next());return e.every(({done:t})=>t)?{done:!0}:{done:!1,value:e.map(({value:t})=>t)}}))}}},function(t,e,r){\"use strict\";function n(t){\"+\"===t[0]&&(t=t.substring(1));const e=\"-\"===t[0]?\"-\":\"\";\"-\"===e&&(t=t.substring(1));const r=t.indexOf(\"e\");if(-1===r)return e+t;let n=t.indexOf(\".\");-1===n&&(n=r);const i=Number(t.substring(r+1)),o=t.substring(0,r).replace(\".\",\"\"),s=n+i,a=o.length;if(s>=a){const t=s-a;let r=o;for(let e=0;es;e--)t+=\"0\";return t+=o,e+t}return e+o.substring(0,s)+\".\"+o.substring(s)}t.exports=n,t.exports.default=n},function(t,e,r){\"use strict\";t.exports={MAX_SAFE_INTEGER:9007199254740991}},function(t,e,r){\"use strict\";const n=r(47);function i(t){return\"0\"===t?\"1\":n(\"1\",t)}t.exports=i,t.exports.default=i},function(t,e,r){\"use strict\";const n=r(4),i=r(0),o=r(8),s=r(22);function a(t){if(-1===(t=i(t)).indexOf(\".\"))return t;const e=s(t);return t=n(t).split(\".\")[0],\"+\"===e?o(t,\"1\"):\"-\"===e?\"0\"===t||\"\"===t?\"0\":\"-\"+t:void 0}t.exports=a,t.exports.default=a},function(t,e,r){\"use strict\";const n=r(51);function i(t){const e=n(t);return[t.replace(/\\\\./g,\"\").replace(/^0/,\"\"),1+\"0\".repeat(e)]}t.exports=i,t.exports.default=i},function(t,e,r){const n=r(0),i=r(16);function o(t){if(t=n(t),!i(t))throw new Error(\"can\\'t call is_odd on decimal\");return[\"1\",\"3\",\"5\",\"7\",\"9\"].includes(t.charAt(t.length-1))}t.exports=o,t.exports.default=o},function(t,e,r){\"use strict\";const n=r(52),i=r(15),o=r(78),s=r(11),a=r(17),u=r(50);function c(t,{max_decimal_digits:e,infinity_times_zero:r=\"NaN\"}={}){const c=t.some(t=>i(t)),l=t.some(t=>s(t));if(c&&l)return r;if(c){return t.filter(t=>\"-\"===u(t)).length%2==0?\"Infinity\":\"-Infinity\"}if(l)return\"0\";const f=o(t.filter(t=>n(t)).length.toString());let h=a(t.map(t=>t.replace(/i$/,\"\")),{max_decimal_digits:e});return f&&(h+=\"i\"),h}t.exports=c,t.exports.default=c},function(t,e,r){\"use strict\";const n=r(0);function i(t){return\"-\"===(t=n(t))[0]}t.exports=i,t.exports.default=i},function(t,e,r){\"use strict\";const n=r(1),i=r(160),o=r(161);function s(t,{max_decimal_digits:e=100,fraction:r=!1}={}){if(i(t)){const[i,s]=o(t);return r?s+\"/\"+i:n(s,i,{max_decimal_digits:e})}return r?\"1/\"+t:n(\"1\",t,{max_decimal_digits:e})}t.exports=s,t.exports.default=s},function(t,e,r){\"use strict\";const n=r(0),i=r(16);function o(t){if(t=n(t),!i(t))throw new Error(\"can\\'t call is_even on decimal\");return[\"0\",\"2\",\"4\",\"6\",\"8\"].includes(t.charAt(t.length-1))}t.exports=o,t.exports.default=o},function(t,e,r){\"use strict\";const n=r(76),i=r(84),o=r(1);function s(t,e){const r=i(t);return\"0\"===r?\"0\":n(o(r,e,{max_decimal_digits:1}))}t.exports=s,t.exports.default=s},function(t,e,r){\"use strict\";const n=r(4),i=r(0);function o(t){const e=(t=n(i(t))).indexOf(\".\");return(-1===e?t.length:e).toString()}t.exports=o,t.exports.default=o},function(t,e,r){\"use strict\";const n=r(1),i=r(82),o=r(86),s=r(87);function a(t,e){const r=s(\"2\",o([\"1000\",e,e]));for(;t.endsWith(\"0\")&&e.endsWith(\"0\");)t=t.substring(0,t.length-1),e=e.substring(0,e.length-1);for(;i(t)&&i(e);)t=n(t,\"2\"),e=n(e,\"2\");let a=!0;for(;a;){a=!1;for(let i=0;i\"<\"!==n(r,t)&&\">\"!==n(r,e));let a=\"13\";for(;\">\"!==n(a,e);)/^\\\\d+5/.test(a)||/^(\\\\d)\\\\1+/.test(a)||[\"9\",\"7\",\"3\"].every(t=>!o(i(a,t)))&&r.push(a),a=s(a,\"2\");return r}t.exports=a,t.exports.default=a},function(t,e,r){\"use strict\";const n=r(6),i=r(1);function o({max_decimal_digits:t=100,steps:e=100}={}){let r=\"1\",o=\"1\";for(let s=1;s\":return\"-\"+s(t,e)}else if(r&&!a)switch(e=e.substring(1),n(t,e)){case\"=\":return\"0\";case\"<\":return\"-\"+s(e,t);case\">\":return s(t,e)}}t.exports=a,t.exports.default=a},function(t,e,r){const{MAX_SAFE_INTEGER_LENGTH:n}=r(56);t.exports=function(t,e){const r=t.length,i=e.length,o=t.indexOf(\".\"),s=e.indexOf(\".\"),a=-1===o?r:o,u=-1===s?i:s;if(-1===o&&-1===s&&r0){for(;m>p-f;){const r=t[m-h]||\"0\",n=e[m-d]||\"0\";let i=Number(r)+Number(n)+g;i>=10?(i-=10,g=1):g=0,\"\"===y&&0===i||(y=i+y),m--}y&&(y=\".\"+y),m--}if(l>0)for(;m>=0;){const r=t[m-h]||\"0\",n=e[m-d]||\"0\";let i=Number(r)+Number(n)+g;i>=10?(i-=10,g=1):g=0,y=i+y,m--}return 1===g&&(y=g+y),\".\"===y[0]&&(y=\"0\"+y),y}},function(t,e,r){const{MAX_SAFE_INTEGER_LENGTH:n}=r(56);t.exports=function(t,e){const r=t.length,i=e.length,o=t.indexOf(\".\"),s=e.indexOf(\".\"),a=-1===o?r:o,u=-1===s?i:s;if(-1===o&&-1===s&&r0){for(;m>p-f;){let r=t[m-h]||\"0\",n=e[m-d]||\"0\";r-=g,g=0;let i=r-n;if(i<0)for(;i<0;)g++,i+=10;else g&&g--;\"\"===y&&0===i||(y=i+y),m--}\"\"!==y&&(y=\".\"+y),m--}if(l>0){for(;m>0;){let r=t[m-h]||\"0\",n=e[m-d]||\"0\";r-=g,g=0;let i=r-n;if(i<0)for(;i<0;)g++,i+=10;else g&&g--;y=i+y,m--}const r=t[0-h]||\"0\",n=e[0-d]||\"0\";let i=Number(r)-(g>0?1:0)-Number(n);0!==i&&(y=i+y),y=y.replace(/^0+/,\"\")}return\".\"===y[0]&&(y=\"0\"+y),y}},function(t,e,r){const n=r(18);function i(t){return\"-\"===(t=n(t))[0]?t.substring(1):t}t.exports=i,t.exports.default=i},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var n=function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return function(t,e){var r=[],n=!0,i=!1,o=void 0;try{for(var s,a=t[Symbol.iterator]();!(n=(s=a.next()).done)&&(r.push(s.value),!e||r.length!==e);n=!0);}catch(t){i=!0,o=t}finally{try{!n&&a.return&&a.return()}finally{if(i)throw o}}return r}(t,e);throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")},i=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t};e.default=function(t,e){return new Promise((function(r,o){try{e&&console.log(\"starting parseData with\",t),e&&console.log(\"\\\\tGeoTIFF:\",\"undefined\"==typeof GeoTIFF?\"undefined\":i(GeoTIFF));var u={},c=void 0,h=void 0;if(\"object\"===t.rasterType)u.values=t.data,u.height=c=t.metadata.height||u.values[0].length,u.width=h=t.metadata.width||u.values[0][0].length,u.pixelHeight=t.metadata.pixelHeight,u.pixelWidth=t.metadata.pixelWidth,u.projection=t.metadata.projection,u.xmin=t.metadata.xmin,u.ymax=t.metadata.ymax,u.noDataValue=t.metadata.noDataValue,u.numberOfRasters=u.values.length,u.xmax=u.xmin+u.width*u.pixelWidth,u.ymin=u.ymax-u.height*u.pixelHeight,u._data=null,r(f(u));else if(\"geotiff\"===t.rasterType){u._data=t.data;var d=s.fromArrayBuffer;\"url\"===t.sourceType?d=s.fromUrl:\"Blob\"===t.sourceType&&(d=s.fromBlob),e&&console.log(\"data.rasterType is geotiff\"),r(d(t.data).then((function(r){return e&&console.log(\"geotiff:\",r),r.getImage().then((function(r){try{e&&console.log(\"image:\",r);var i=r.fileDirectory,s=r.getGeoKeys()||{},d=s.GeographicTypeGeoKey,p=s.ProjectedCSTypeGeoKey;u.projection=p||d||t.metadata.projection,e&&console.log(\"projection:\",u.projection),u.height=c=r.getHeight(),e&&console.log(\"result.height:\",u.height),u.width=h=r.getWidth(),e&&console.log(\"result.width:\",u.width);var y=r.getResolution(),g=n(y,2),m=g[0],b=g[1];u.pixelHeight=Math.abs(b),u.pixelWidth=Math.abs(m);var v=r.getOrigin(),w=n(v,2),x=w[0],_=w[1];return u.xmin=x,u.xmax=u.xmin+h*u.pixelWidth,u.ymax=_,u.ymin=u.ymax-c*u.pixelHeight,u.noDataValue=i.GDAL_NODATA?parseFloat(i.GDAL_NODATA):null,u.numberOfRasters=i.SamplesPerPixel,i.ColorMap&&(u.palette=(0,a.getPalette)(r)),\"url\"!==t.sourceType?r.readRasters().then((function(t){return u.values=t.map((function(t){return(0,l.unflatten)(t,{height:c,width:h})})),f(u)})):u}catch(t){o(t),console.error(\"[georaster] error parsing georaster:\",t)}}))})))}}catch(t){o(t),console.error(\"[georaster] error parsing georaster:\",t)}}))};var o,s=r(193),a=r(150),u=r(151),c=(o=u)&&o.__esModule?o:{default:o},l=r(192);function f(t){var e=(0,c.default)(t.values,{height:t.height,layout:\"[band][row][column]\",noData:t.noDataValue,precise:!1,stats:[\"max\",\"min\",\"range\"],width:t.width});return t.maxs=e.bands.map((function(t){return t.max})),t.mins=e.bands.map((function(t){return t.min})),t.ranges=e.bands.map((function(t){return t.range})),t}},function(t,e,r){function n(t,e){\"use strict\";var r=(e=e||{}).pos||0,i=\"<\".charCodeAt(0),o=\">\".charCodeAt(0),s=\"-\".charCodeAt(0),a=\"/\".charCodeAt(0),u=\"!\".charCodeAt(0),c=\"\\'\".charCodeAt(0),l=\\'\"\\'.charCodeAt(0);function f(){for(var e=[];t[r];)if(t.charCodeAt(r)==i){if(t.charCodeAt(r+1)===a)return(r=t.indexOf(\">\",r))+1&&(r+=1),e;if(t.charCodeAt(r+1)===u){if(t.charCodeAt(r+2)==s){for(;-1!==r&&(t.charCodeAt(r)!==o||t.charCodeAt(r-1)!=s||t.charCodeAt(r-2)!=s||-1==r);)r=t.indexOf(\">\",r+1);-1===r&&(r=t.length)}else for(r+=2;t.charCodeAt(r)!==o&&t[r];)r++;r++;continue}var n=y();e.push(n)}else{var c=h();c.trim().length>0&&e.push(c),r++}return e}function h(){var e=r;return-2===(r=t.indexOf(\"<\",r)-1)&&(r=t.length),t.slice(e,r+1)}function d(){for(var e=r;-1===\"\\\\n\\\\t>/= \".indexOf(t[r])&&t[r];)r++;return t.slice(e,r)}var p=e.noChildNodes||[\"img\",\"br\",\"input\",\"meta\",\"link\"];function y(){r++;const e=d(),n={};let i=[];for(;t.charCodeAt(r)!==o&&t[r];){var s=t.charCodeAt(r);if(s>64&&s<91||s>96&&s<123){for(var u=d(),h=t.charCodeAt(r);h&&h!==c&&h!==l&&!(h>64&&h<91||h>96&&h<123)&&h!==o;)r++,h=t.charCodeAt(r);if(h===c||h===l){var y=g();if(-1===r)return{tagName:e,attributes:n,children:i}}else y=null,r--;n[u]=y}r++}if(t.charCodeAt(r-1)!==a)if(\"script\"==e){var m=r+1;r=t.indexOf(\"<\\\\/script>\",r),i=[t.slice(m,r-1)],r+=9}else if(\"style\"==e){m=r+1;r=t.indexOf(\"\",r),i=[t.slice(m,r-1)],r+=8}else-1==p.indexOf(e)&&(r++,i=f());else r++;return{tagName:e,attributes:n,children:i}}function g(){var e=t[r],n=++r;return r=t.indexOf(e,n),t.slice(n,r)}var m,b=null;if(void 0!==e.attrValue){e.attrName=e.attrName||\"id\";for(b=[];-1!==(m=void 0,m=new RegExp(\"\\\\\\\\s\"+e.attrName+\"\\\\\\\\s*=[\\'\\\\\"]\"+e.attrValue+\"[\\'\\\\\"]\").exec(t),r=m?m.index:-1);)-1!==(r=t.lastIndexOf(\"<\",r))&&b.push(y()),t=t.substr(r),r=0}else b=e.parseNode?y():f();return e.filter&&(b=n.filter(b,e.filter)),e.setPos&&(b.pos=r),b}n.simplify=function(t){var e={};if(!t.length)return\"\";if(1===t.length&&\"string\"==typeof t[0])return t[0];for(var r in t.forEach((function(t){if(\"object\"==typeof t){e[t.tagName]||(e[t.tagName]=[]);var r=n.simplify(t.children||[]);e[t.tagName].push(r),t.attributes&&(r._attributes=t.attributes)}})),e)1==e[r].length&&(e[r]=e[r][0]);return e},n.filter=function(t,e){var r=[];return t.forEach((function(t){if(\"object\"==typeof t&&e(t)&&r.push(t),t.children){var i=n.filter(t.children,e);r=r.concat(i)}})),r},n.stringify=function(t){var e=\"\";function r(t){if(t)for(var r=0;r\",r(t.children),e+=\"\"}return r(t),e},n.toContentString=function(t){if(Array.isArray(t)){var e=\"\";return t.forEach((function(t){e=(e+=\" \"+n.toContentString(t)).trim()})),e}return\"object\"==typeof t?n.toContentString(t.children):\" \"+t},n.getElementById=function(t,e,r){var i=n(t,{attrValue:e});return r?n.simplify(i):i[0]},n.getElementsByClassName=function(t,e,r){const i=n(t,{attrName:\"class\",attrValue:\"[a-zA-Z0-9-s ]*\"+e+\"[a-zA-Z0-9-s ]*\"});return r?n.simplify(i):i},n.parseStream=function(t,e){if(\"string\"==typeof e&&(e=e.length+2),\"string\"==typeof t){var i=r(25);t=i.createReadStream(t,{start:e}),e=0}var o=e,s=\"\";return t.on(\"data\",(function(e){s+=e;for(var r=0;;){if(!(o=s.indexOf(\"<\",o)+1))return void(o=r);if(\"/\"!==s[o+1]){var i=n(s,{pos:o-1,parseNode:!0,setPos:!0});if((o=i.pos)>s.length-1||oo.length-1||i=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0==(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg=\"\",this.ended=!1,this.chunks=[],this.strm=new u,this.strm.avail_out=0;var r=n.inflateInit2(this.strm,e.windowBits);if(r!==s.Z_OK)throw new Error(a[r]);if(this.header=new c,n.inflateGetHeader(this.strm,this.header),e.dictionary&&(\"string\"==typeof e.dictionary?e.dictionary=o.string2buf(e.dictionary):\"[object ArrayBuffer]\"===l.call(e.dictionary)&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(r=n.inflateSetDictionary(this.strm,e.dictionary))!==s.Z_OK))throw new Error(a[r])}function h(t,e){var r=new f(e);if(r.push(t,!0),r.err)throw r.msg||a[r.err];return r.result}f.prototype.push=function(t,e){var r,a,u,c,f,h=this.strm,d=this.options.chunkSize,p=this.options.dictionary,y=!1;if(this.ended)return!1;a=e===~~e?e:!0===e?s.Z_FINISH:s.Z_NO_FLUSH,\"string\"==typeof t?h.input=o.binstring2buf(t):\"[object ArrayBuffer]\"===l.call(t)?h.input=new Uint8Array(t):h.input=t,h.next_in=0,h.avail_in=h.input.length;do{if(0===h.avail_out&&(h.output=new i.Buf8(d),h.next_out=0,h.avail_out=d),(r=n.inflate(h,s.Z_NO_FLUSH))===s.Z_NEED_DICT&&p&&(r=n.inflateSetDictionary(this.strm,p)),r===s.Z_BUF_ERROR&&!0===y&&(r=s.Z_OK,y=!1),r!==s.Z_STREAM_END&&r!==s.Z_OK)return this.onEnd(r),this.ended=!0,!1;h.next_out&&(0!==h.avail_out&&r!==s.Z_STREAM_END&&(0!==h.avail_in||a!==s.Z_FINISH&&a!==s.Z_SYNC_FLUSH)||(\"string\"===this.options.to?(u=o.utf8border(h.output,h.next_out),c=h.next_out-u,f=o.buf2string(h.output,u),h.next_out=c,h.avail_out=d-c,c&&i.arraySet(h.output,h.output,u,c,0),this.onData(f)):this.onData(i.shrinkBuf(h.output,h.next_out)))),0===h.avail_in&&0===h.avail_out&&(y=!0)}while((h.avail_in>0||0===h.avail_out)&&r!==s.Z_STREAM_END);return r===s.Z_STREAM_END&&(a=s.Z_FINISH),a===s.Z_FINISH?(r=n.inflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===s.Z_OK):a!==s.Z_SYNC_FLUSH||(this.onEnd(s.Z_OK),h.avail_out=0,!0)},f.prototype.onData=function(t){this.chunks.push(t)},f.prototype.onEnd=function(t){t===s.Z_OK&&(\"string\"===this.options.to?this.result=this.chunks.join(\"\"):this.result=i.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},e.Inflate=f,e.inflate=h,e.inflateRaw=function(t,e){return(e=e||{}).raw=!0,h(t,e)},e.ungzip=h},function(t,e,r){\"use strict\";var n=r(26);class i extends n.a{constructor(){super(t=>(this._observers.add(t),()=>this._observers.delete(t))),this._observers=new Set}next(t){for(const e of this._observers)e.next(t)}error(t){for(const e of this._observers)e.error(t)}complete(){for(const t of this._observers)t.complete()}}e.a=i},function(t,e,r){\"use strict\";r.d(e,\"a\",(function(){return i}));const n=()=>{};function i(){let t,e=!1,r=n;return[new Promise(n=>{e?n(t):r=n}),n=>{e=!0,t=n,r(t)}]}},function(t,e,r){\"use strict\";r.d(e,\"a\",(function(){return i}));var n=r(2);function i(t){return t&&\"object\"==typeof t&&t[n.d]}},function(t,e,r){var n=r(40),i=r(39),o=t.exports;for(var s in n)n.hasOwnProperty(s)&&(o[s]=n[s]);function a(t){if(\"string\"==typeof t&&(t=i.parse(t)),t.protocol||(t.protocol=\"https:\"),\"https:\"!==t.protocol)throw new Error(\\'Protocol \"\\'+t.protocol+\\'\" not supported. Expected \"https:\"\\');return t}o.request=function(t,e){return t=a(t),n.request.call(this,t,e)},o.get=function(t,e){return t=a(t),n.get.call(this,t,e)}},function(t,e,r){\"use strict\";r.r(e);var n=r(99),i=r.n(n);self;onmessage=t=>{const e=t.data;i()(e).then(t=>{const e=[];if(t.values){let r;t.values.forEach(t=>t.forEach(({buffer:t})=>{t instanceof ArrayBuffer&&t!==r&&(e.push(t),r=t)}))}t._data instanceof ArrayBuffer&&e.push(t._data),postMessage(t,e),close()})}},function(t,e,r){(function(e){var n=r(42).Transform,i=r(10);function o(t){n.call(this,t),this._destroyed=!1}function s(t,e,r){r(null,t)}function a(t){return function(e,r,n){return\"function\"==typeof e&&(n=r,r=e,e={}),\"function\"!=typeof r&&(r=s),\"function\"!=typeof n&&(n=null),t(e,r,n)}}i(o,n),o.prototype.destroy=function(t){if(!this._destroyed){this._destroyed=!0;var r=this;e.nextTick((function(){t&&r.emit(\"error\",t),r.emit(\"close\")}))}},t.exports=a((function(t,e,r){var n=new o(t);return n._transform=e,r&&(n._flush=r),n})),t.exports.ctor=a((function(t,e,r){function n(e){if(!(this instanceof n))return new n(e);this.options=Object.assign({},t,e),o.call(this,this.options)}return i(n,o),n.prototype._transform=e,r&&(n.prototype._flush=r),n})),t.exports.obj=a((function(t,e,r){var n=new o(Object.assign({objectMode:!0,highWaterMark:16},t));return n._transform=e,r&&(n._flush=r),n}))}).call(this,r(7))},function(t,e,r){\"use strict\";e.byteLength=function(t){var e=c(t),r=e[0],n=e[1];return 3*(r+n)/4-n},e.toByteArray=function(t){var e,r,n=c(t),s=n[0],a=n[1],u=new o(function(t,e,r){return 3*(e+r)/4-r}(0,s,a)),l=0,f=a>0?s-4:s;for(r=0;r>16&255,u[l++]=e>>8&255,u[l++]=255&e;2===a&&(e=i[t.charCodeAt(r)]<<2|i[t.charCodeAt(r+1)]>>4,u[l++]=255&e);1===a&&(e=i[t.charCodeAt(r)]<<10|i[t.charCodeAt(r+1)]<<4|i[t.charCodeAt(r+2)]>>2,u[l++]=e>>8&255,u[l++]=255&e);return u},e.fromByteArray=function(t){for(var e,r=t.length,i=r%3,o=[],s=0,a=r-i;sa?a:s+16383));1===i?(e=t[r-1],o.push(n[e>>2]+n[e<<4&63]+\"==\")):2===i&&(e=(t[r-2]<<8)+t[r-1],o.push(n[e>>10]+n[e>>4&63]+n[e<<2&63]+\"=\"));return o.join(\"\")};for(var n=[],i=[],o=\"undefined\"!=typeof Uint8Array?Uint8Array:Array,s=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",a=0,u=s.length;a0)throw new Error(\"Invalid string. Length must be a multiple of 4\");var r=t.indexOf(\"=\");return-1===r&&(r=e),[r,r===e?0:4-r%4]}function l(t,e,r){for(var i,o,s=[],a=e;a>18&63]+n[o>>12&63]+n[o>>6&63]+n[63&o]);return s.join(\"\")}i[\"-\".charCodeAt(0)]=62,i[\"_\".charCodeAt(0)]=63},function(t,e){\\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\\ne.read=function(t,e,r,n,i){var o,s,a=8*i-n-1,u=(1<>1,l=-7,f=r?i-1:0,h=r?-1:1,d=t[e+f];for(f+=h,o=d&(1<<-l)-1,d>>=-l,l+=a;l>0;o=256*o+t[e+f],f+=h,l-=8);for(s=o&(1<<-l)-1,o>>=-l,l+=n;l>0;s=256*s+t[e+f],f+=h,l-=8);if(0===o)o=1-c;else{if(o===u)return s?NaN:1/0*(d?-1:1);s+=Math.pow(2,n),o-=c}return(d?-1:1)*s*Math.pow(2,o-n)},e.write=function(t,e,r,n,i,o){var s,a,u,c=8*o-i-1,l=(1<>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:o-1,p=n?1:-1,y=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,s=l):(s=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-s))<1&&(s--,u*=2),(e+=s+f>=1?h/u:h*Math.pow(2,1-f))*u>=2&&(s++,u/=2),s+f>=l?(a=0,s=l):s+f>=1?(a=(e*u-1)*Math.pow(2,i),s+=f):(a=e*Math.pow(2,f-1)*Math.pow(2,i),s=0));i>=8;t[r+d]=255&a,d+=p,a/=256,i-=8);for(s=s<0;t[r+d]=255&s,d+=p,s/=256,c-=8);t[r+d-p]|=128*y}},function(t,e){},function(t,e,r){\"use strict\";var n=r(43).Buffer,i=r(112);t.exports=function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this.head=null,this.tail=null,this.length=0}return t.prototype.push=function(t){var e={data:t,next:null};this.length>0?this.tail.next=e:this.head=e,this.tail=e,++this.length},t.prototype.unshift=function(t){var e={data:t,next:this.head};0===this.length&&(this.tail=e),this.head=e,++this.length},t.prototype.shift=function(){if(0!==this.length){var t=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,t}},t.prototype.clear=function(){this.head=this.tail=null,this.length=0},t.prototype.join=function(t){if(0===this.length)return\"\";for(var e=this.head,r=\"\"+e.data;e=e.next;)r+=t+e.data;return r},t.prototype.concat=function(t){if(0===this.length)return n.alloc(0);for(var e,r,i,o=n.allocUnsafe(t>>>0),s=this.head,a=0;s;)e=s.data,r=o,i=a,e.copy(r,i),a+=s.data.length,s=s.next;return o},t}(),i&&i.inspect&&i.inspect.custom&&(t.exports.prototype[i.inspect.custom]=function(){var t=i.inspect({length:this.length});return this.constructor.name+\" \"+t})},function(t,e){},function(t,e,r){(function(t){var n=void 0!==t&&t||\"undefined\"!=typeof self&&self||window,i=Function.prototype.apply;function o(t,e){this._id=t,this._clearFn=e}e.setTimeout=function(){return new o(i.call(setTimeout,n,arguments),clearTimeout)},e.setInterval=function(){return new o(i.call(setInterval,n,arguments),clearInterval)},e.clearTimeout=e.clearInterval=function(t){t&&t.close()},o.prototype.unref=o.prototype.ref=function(){},o.prototype.close=function(){this._clearFn.call(n,this._id)},e.enroll=function(t,e){clearTimeout(t._idleTimeoutId),t._idleTimeout=e},e.unenroll=function(t){clearTimeout(t._idleTimeoutId),t._idleTimeout=-1},e._unrefActive=e.active=function(t){clearTimeout(t._idleTimeoutId);var e=t._idleTimeout;e>=0&&(t._idleTimeoutId=setTimeout((function(){t._onTimeout&&t._onTimeout()}),e))},r(114),e.setImmediate=\"undefined\"!=typeof self&&self.setImmediate||void 0!==t&&t.setImmediate||this&&this.setImmediate,e.clearImmediate=\"undefined\"!=typeof self&&self.clearImmediate||void 0!==t&&t.clearImmediate||this&&this.clearImmediate}).call(this,r(3))},function(t,e,r){(function(t,e){!function(t,r){\"use strict\";if(!t.setImmediate){var n,i,o,s,a,u=1,c={},l=!1,f=t.document,h=Object.getPrototypeOf&&Object.getPrototypeOf(t);h=h&&h.setTimeout?h:t,\"[object process]\"==={}.toString.call(t.process)?n=function(t){e.nextTick((function(){p(t)}))}:!function(){if(t.postMessage&&!t.importScripts){var e=!0,r=t.onmessage;return t.onmessage=function(){e=!1},t.postMessage(\"\",\"*\"),t.onmessage=r,e}}()?t.MessageChannel?((o=new MessageChannel).port1.onmessage=function(t){p(t.data)},n=function(t){o.port2.postMessage(t)}):f&&\"onreadystatechange\"in f.createElement(\"script\")?(i=f.documentElement,n=function(t){var e=f.createElement(\"script\");e.onreadystatechange=function(){p(t),e.onreadystatechange=null,i.removeChild(e),e=null},i.appendChild(e)}):n=function(t){setTimeout(p,0,t)}:(s=\"setImmediate$\"+Math.random()+\"$\",a=function(e){e.source===t&&\"string\"==typeof e.data&&0===e.data.indexOf(s)&&p(+e.data.slice(s.length))},t.addEventListener?t.addEventListener(\"message\",a,!1):t.attachEvent(\"onmessage\",a),n=function(e){t.postMessage(s+e,\"*\")}),h.setImmediate=function(t){\"function\"!=typeof t&&(t=new Function(\"\"+t));for(var e=new Array(arguments.length-1),r=0;r>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24)}function c(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new n.Buf16(320),this.work=new n.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function l(t){var e;return t&&t.state?(e=t.state,t.total_in=t.total_out=e.total=0,t.msg=\"\",e.wrap&&(t.adler=1&e.wrap),e.mode=1,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new n.Buf32(852),e.distcode=e.distdyn=new n.Buf32(592),e.sane=1,e.back=-1,0):-2}function f(t){var e;return t&&t.state?((e=t.state).wsize=0,e.whave=0,e.wnext=0,l(t)):-2}function h(t,e){var r,n;return t&&t.state?(n=t.state,e<0?(r=0,e=-e):(r=1+(e>>4),e<48&&(e&=15)),e&&(e<8||e>15)?-2:(null!==n.window&&n.wbits!==e&&(n.window=null),n.wrap=r,n.wbits=e,f(t))):-2}function d(t,e){var r,n;return t?(n=new c,t.state=n,n.window=null,0!==(r=h(t,e))&&(t.state=null),r):-2}var p,y,g=!0;function m(t){if(g){var e;for(p=new n.Buf32(512),y=new n.Buf32(32),e=0;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(a(1,t.lens,0,288,p,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;a(2,t.lens,0,32,y,0,t.work,{bits:5}),g=!1}t.lencode=p,t.lenbits=9,t.distcode=y,t.distbits=5}function b(t,e,r,i){var o,s=t.state;return null===s.window&&(s.wsize=1<=s.wsize?(n.arraySet(s.window,e,r-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):((o=s.wsize-s.wnext)>i&&(o=i),n.arraySet(s.window,e,r-i,o,s.wnext),(i-=o)?(n.arraySet(s.window,e,r-i,i,0),s.wnext=i,s.whave=s.wsize):(s.wnext+=o,s.wnext===s.wsize&&(s.wnext=0),s.whave>>8&255,r.check=o(r.check,L,2,0),y=0,g=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&y)<<8)+(y>>8))%31){t.msg=\"incorrect header check\",r.mode=30;break}if(8!=(15&y)){t.msg=\"unknown compression method\",r.mode=30;break}if(g-=4,I=8+(15&(y>>>=4)),0===r.wbits)r.wbits=I;else if(I>r.wbits){t.msg=\"invalid window size\",r.mode=30;break}r.dmax=1<>8&1),512&r.flags&&(L[0]=255&y,L[1]=y>>>8&255,r.check=o(r.check,L,2,0)),y=0,g=0,r.mode=3;case 3:for(;g<32;){if(0===d)break t;d--,y+=c[f++]<>>8&255,L[2]=y>>>16&255,L[3]=y>>>24&255,r.check=o(r.check,L,4,0)),y=0,g=0,r.mode=4;case 4:for(;g<16;){if(0===d)break t;d--,y+=c[f++]<>8),512&r.flags&&(L[0]=255&y,L[1]=y>>>8&255,r.check=o(r.check,L,2,0)),y=0,g=0,r.mode=5;case 5:if(1024&r.flags){for(;g<16;){if(0===d)break t;d--,y+=c[f++]<>>8&255,r.check=o(r.check,L,2,0)),y=0,g=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&((x=r.length)>d&&(x=d),x&&(r.head&&(I=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),n.arraySet(r.head.extra,c,f,x,I)),512&r.flags&&(r.check=o(r.check,c,x,f)),d-=x,f+=x,r.length-=x),r.length))break t;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===d)break t;x=0;do{I=c[f+x++],r.head&&I&&r.length<65536&&(r.head.name+=String.fromCharCode(I))}while(I&&x>9&1,r.head.done=!0),t.adler=r.check=0,r.mode=12;break;case 10:for(;g<32;){if(0===d)break t;d--,y+=c[f++]<>>=7&g,g-=7&g,r.mode=27;break}for(;g<3;){if(0===d)break t;d--,y+=c[f++]<>>=1)){case 0:r.mode=14;break;case 1:if(m(r),r.mode=20,6===e){y>>>=2,g-=2;break t}break;case 2:r.mode=17;break;case 3:t.msg=\"invalid block type\",r.mode=30}y>>>=2,g-=2;break;case 14:for(y>>>=7&g,g-=7&g;g<32;){if(0===d)break t;d--,y+=c[f++]<>>16^65535)){t.msg=\"invalid stored block lengths\",r.mode=30;break}if(r.length=65535&y,y=0,g=0,r.mode=15,6===e)break t;case 15:r.mode=16;case 16:if(x=r.length){if(x>d&&(x=d),x>p&&(x=p),0===x)break t;n.arraySet(l,c,f,x,h),d-=x,f+=x,p-=x,h+=x,r.length-=x;break}r.mode=12;break;case 17:for(;g<14;){if(0===d)break t;d--,y+=c[f++]<>>=5,g-=5,r.ndist=1+(31&y),y>>>=5,g-=5,r.ncode=4+(15&y),y>>>=4,g-=4,r.nlen>286||r.ndist>30){t.msg=\"too many length or distance symbols\",r.mode=30;break}r.have=0,r.mode=18;case 18:for(;r.have>>=3,g-=3}for(;r.have<19;)r.lens[F[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,R={bits:r.lenbits},P=a(0,r.lens,0,19,r.lencode,0,r.work,R),r.lenbits=R.bits,P){t.msg=\"invalid code lengths set\",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have>>16&255,k=65535&M,!((A=M>>>24)<=g);){if(0===d)break t;d--,y+=c[f++]<>>=A,g-=A,r.lens[r.have++]=k;else{if(16===k){for(j=A+2;g>>=A,g-=A,0===r.have){t.msg=\"invalid bit length repeat\",r.mode=30;break}I=r.lens[r.have-1],x=3+(3&y),y>>>=2,g-=2}else if(17===k){for(j=A+3;g>>=A)),y>>>=3,g-=3}else{for(j=A+7;g>>=A)),y>>>=7,g-=7}if(r.have+x>r.nlen+r.ndist){t.msg=\"invalid bit length repeat\",r.mode=30;break}for(;x--;)r.lens[r.have++]=I}}if(30===r.mode)break;if(0===r.lens[256]){t.msg=\"invalid code -- missing end-of-block\",r.mode=30;break}if(r.lenbits=9,R={bits:r.lenbits},P=a(1,r.lens,0,r.nlen,r.lencode,0,r.work,R),r.lenbits=R.bits,P){t.msg=\"invalid literal/lengths set\",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,R={bits:r.distbits},P=a(2,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,R),r.distbits=R.bits,P){t.msg=\"invalid distances set\",r.mode=30;break}if(r.mode=20,6===e)break t;case 20:r.mode=21;case 21:if(d>=6&&p>=258){t.next_out=h,t.avail_out=p,t.next_in=f,t.avail_in=d,r.hold=y,r.bits=g,s(t,w),h=t.next_out,l=t.output,p=t.avail_out,f=t.next_in,c=t.input,d=t.avail_in,y=r.hold,g=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;E=(M=r.lencode[y&(1<>>16&255,k=65535&M,!((A=M>>>24)<=g);){if(0===d)break t;d--,y+=c[f++]<>T)])>>>16&255,k=65535&M,!(T+(A=M>>>24)<=g);){if(0===d)break t;d--,y+=c[f++]<>>=T,g-=T,r.back+=T}if(y>>>=A,g-=A,r.back+=A,r.length=k,0===E){r.mode=26;break}if(32&E){r.back=-1,r.mode=12;break}if(64&E){t.msg=\"invalid literal/length code\",r.mode=30;break}r.extra=15&E,r.mode=22;case 22:if(r.extra){for(j=r.extra;g>>=r.extra,g-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;E=(M=r.distcode[y&(1<>>16&255,k=65535&M,!((A=M>>>24)<=g);){if(0===d)break t;d--,y+=c[f++]<>T)])>>>16&255,k=65535&M,!(T+(A=M>>>24)<=g);){if(0===d)break t;d--,y+=c[f++]<>>=T,g-=T,r.back+=T}if(y>>>=A,g-=A,r.back+=A,64&E){t.msg=\"invalid distance code\",r.mode=30;break}r.offset=k,r.extra=15&E,r.mode=24;case 24:if(r.extra){for(j=r.extra;g>>=r.extra,g-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){t.msg=\"invalid distance too far back\",r.mode=30;break}r.mode=25;case 25:if(0===p)break t;if(x=w-p,r.offset>x){if((x=r.offset-x)>r.whave&&r.sane){t.msg=\"invalid distance too far back\",r.mode=30;break}x>r.wnext?(x-=r.wnext,_=r.wsize-x):_=r.wnext-x,x>r.length&&(x=r.length),S=r.window}else S=l,_=h-r.offset,x=r.length;x>p&&(x=p),p-=x,r.length-=x;do{l[h++]=S[_++]}while(--x);0===r.length&&(r.mode=21);break;case 26:if(0===p)break t;l[h++]=r.length,p--,r.mode=21;break;case 27:if(r.wrap){for(;g<32;){if(0===d)break t;d--,y|=c[f++]<>>16&65535|0,s=0;0!==r;){r-=s=r>2e3?2e3:r;do{o=o+(i=i+e[n++]|0)|0}while(--s);i%=65521,o%=65521}return i|o<<16|0}},function(t,e,r){\"use strict\";var n=function(){for(var t,e=[],r=0;r<256;r++){t=r;for(var n=0;n<8;n++)t=1&t?3988292384^t>>>1:t>>>1;e[r]=t}return e}();t.exports=function(t,e,r,i){var o=n,s=i+r;t^=-1;for(var a=i;a>>8^o[255&(t^e[a])];return-1^t}},function(t,e,r){\"use strict\";t.exports=function(t,e){var r,n,i,o,s,a,u,c,l,f,h,d,p,y,g,m,b,v,w,x,_,S,A,E,k;r=t.state,n=t.next_in,E=t.input,i=n+(t.avail_in-5),o=t.next_out,k=t.output,s=o-(e-t.avail_out),a=o+(t.avail_out-257),u=r.dmax,c=r.wsize,l=r.whave,f=r.wnext,h=r.window,d=r.hold,p=r.bits,y=r.lencode,g=r.distcode,m=(1<>>=w=v>>>24,p-=w,0===(w=v>>>16&255))k[o++]=65535&v;else{if(!(16&w)){if(0==(64&w)){v=y[(65535&v)+(d&(1<>>=w,p-=w),p<15&&(d+=E[n++]<>>=w=v>>>24,p-=w,!(16&(w=v>>>16&255))){if(0==(64&w)){v=g[(65535&v)+(d&(1<u){t.msg=\"invalid distance too far back\",r.mode=30;break t}if(d>>>=w,p-=w,_>(w=o-s)){if((w=_-w)>l&&r.sane){t.msg=\"invalid distance too far back\",r.mode=30;break t}if(S=0,A=h,0===f){if(S+=c-w,w2;)k[o++]=A[S++],k[o++]=A[S++],k[o++]=A[S++],x-=3;x&&(k[o++]=A[S++],x>1&&(k[o++]=A[S++]))}else{S=o-_;do{k[o++]=k[S++],k[o++]=k[S++],k[o++]=k[S++],x-=3}while(x>2);x&&(k[o++]=k[S++],x>1&&(k[o++]=k[S++]))}break}}break}}while(n>3,d&=(1<<(p-=x<<3))-1,t.next_in=n,t.next_out=o,t.avail_in=n=1&&0===L[k];k--);if(T>k&&(T=k),0===k)return c[l++]=20971520,c[l++]=20971520,h.bits=1,0;for(E=1;E0&&(0===t||1!==k))return-1;for(F[1]=0,S=1;S<15;S++)F[S+1]=F[S]+L[S];for(A=0;A852||2===t&&P>592)return 1;for(;;){v=S-O,f[A]b?(w=N[D+f[A]],x=j[M+f[A]]):(w=96,x=0),d=1<>O)+(p-=d)]=v<<24|w<<16|x|0}while(0!==p);for(d=1<>=1;if(0!==d?(R&=d-1,R+=d):R=0,A++,0==--L[S]){if(S===k)break;S=e[r+f[A]]}if(S>T&&(R&g)!==y){for(0===O&&(O=T),m+=E,I=1<<(C=S-O);C+O852||2===t&&P>592)return 1;c[y=R&g]=T<<24|C<<16|m-l|0}}return 0!==R&&(c[m+R]=S-O<<24|64<<16|0),h.bits=T,0}},function(t,e,r){\"use strict\";var n=r(29),i=!0,o=!0;try{String.fromCharCode.apply(null,[0])}catch(t){i=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(t){o=!1}for(var s=new n.Buf8(256),a=0;a<256;a++)s[a]=a>=252?6:a>=248?5:a>=240?4:a>=224?3:a>=192?2:1;function u(t,e){if(e<65534&&(t.subarray&&o||!t.subarray&&i))return String.fromCharCode.apply(null,n.shrinkBuf(t,e));for(var r=\"\",s=0;s>>6,e[s++]=128|63&r):r<65536?(e[s++]=224|r>>>12,e[s++]=128|r>>>6&63,e[s++]=128|63&r):(e[s++]=240|r>>>18,e[s++]=128|r>>>12&63,e[s++]=128|r>>>6&63,e[s++]=128|63&r);return e},e.buf2binstring=function(t){return u(t,t.length)},e.binstring2buf=function(t){for(var e=new n.Buf8(t.length),r=0,i=e.length;r4)c[n++]=65533,r+=o-1;else{for(i&=2===o?31:3===o?15:7;o>1&&r1?c[n++]=65533:i<65536?c[n++]=i:(i-=65536,c[n++]=55296|i>>10&1023,c[n++]=56320|1023&i)}return u(c,n)},e.utf8border=function(t,e){var r;for((e=e||t.length)>t.length&&(e=t.length),r=e-1;r>=0&&128==(192&t[r]);)r--;return r<0||0===r?e:r+s[t[r]]>e?r:e}},function(t,e,r){\"use strict\";t.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},function(t,e,r){\"use strict\";t.exports={2:\"need dictionary\",1:\"stream end\",0:\"\",\"-1\":\"file error\",\"-2\":\"stream error\",\"-3\":\"data error\",\"-4\":\"insufficient memory\",\"-5\":\"buffer error\",\"-6\":\"incompatible version\"}},function(t,e,r){\"use strict\";t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg=\"\",this.state=null,this.data_type=2,this.adler=0}},function(t,e,r){\"use strict\";t.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name=\"\",this.comment=\"\",this.hcrc=0,this.done=!1}},function(t,e,r){t.exports=r.p+\"0.bce5ef15ddaa1e171e9d.worker.worker.js\"},function(t,e,r){t.exports=function(t){function e(t){let r,i,o,s=null;function a(...t){if(!a.enabled)return;const n=a,i=Number(new Date),o=i-(r||i);n.diff=o,n.prev=r,n.curr=i,r=i,t[0]=e.coerce(t[0]),\"string\"!=typeof t[0]&&t.unshift(\"%O\");let s=0;t[0]=t[0].replace(/%([a-zA-Z%])/g,(r,i)=>{if(\"%%\"===r)return\"%\";s++;const o=e.formatters[i];if(\"function\"==typeof o){const e=t[s];r=o.call(n,e),t.splice(s,1),s--}return r}),e.formatArgs.call(n,t);(n.log||e.log).apply(n,t)}return a.namespace=t,a.useColors=e.useColors(),a.color=e.selectColor(t),a.extend=n,a.destroy=e.destroy,Object.defineProperty(a,\"enabled\",{enumerable:!0,configurable:!1,get:()=>null!==s?s:(i!==e.namespaces&&(i=e.namespaces,o=e.enabled(t)),o),set:t=>{s=t}}),\"function\"==typeof e.init&&e.init(a),a}function n(t,r){const n=e(this.namespace+(void 0===r?\":\":r)+t);return n.log=this.log,n}function i(t){return t.toString().substring(2,t.toString().length-2).replace(/\\\\.\\\\*\\\\?$/,\"*\")}return e.debug=e,e.default=e,e.coerce=function(t){if(t instanceof Error)return t.stack||t.message;return t},e.disable=function(){const t=[...e.names.map(i),...e.skips.map(i).map(t=>\"-\"+t)].join(\",\");return e.enable(\"\"),t},e.enable=function(t){let r;e.save(t),e.namespaces=t,e.names=[],e.skips=[];const n=(\"string\"==typeof t?t:\"\").split(/[\\\\s,]+/),i=n.length;for(r=0;r{e[r]=t[r]}),e.names=[],e.skips=[],e.formatters={},e.selectColor=function(t){let r=0;for(let e=0;e=1.5*r;return Math.round(t/r)+\" \"+n+(i?\"s\":\"\")}t.exports=function(t,e){e=e||{};var a=typeof t;if(\"string\"===a&&t.length>0)return function(t){if((t=String(t)).length>100)return;var e=/^(-?(?:\\\\d+)?\\\\.?\\\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t);if(!e)return;var s=parseFloat(e[1]);switch((e[2]||\"ms\").toLowerCase()){case\"years\":case\"year\":case\"yrs\":case\"yr\":case\"y\":return 315576e5*s;case\"weeks\":case\"week\":case\"w\":return 6048e5*s;case\"days\":case\"day\":case\"d\":return s*o;case\"hours\":case\"hour\":case\"hrs\":case\"hr\":case\"h\":return s*i;case\"minutes\":case\"minute\":case\"mins\":case\"min\":case\"m\":return s*n;case\"seconds\":case\"second\":case\"secs\":case\"sec\":case\"s\":return s*r;case\"milliseconds\":case\"millisecond\":case\"msecs\":case\"msec\":case\"ms\":return s;default:return}}(t);if(\"number\"===a&&isFinite(t))return e.long?function(t){var e=Math.abs(t);if(e>=o)return s(t,e,o,\"day\");if(e>=i)return s(t,e,i,\"hour\");if(e>=n)return s(t,e,n,\"minute\");if(e>=r)return s(t,e,r,\"second\");return t+\" ms\"}(t):function(t){var e=Math.abs(t);if(e>=o)return Math.round(t/o)+\"d\";if(e>=i)return Math.round(t/i)+\"h\";if(e>=n)return Math.round(t/n)+\"m\";if(e>=r)return Math.round(t/r)+\"s\";return t+\"ms\"}(t);throw new Error(\"val is not a non-empty string or a valid number. val=\"+JSON.stringify(t))}},function(t,e,r){(function(e,n,i){var o=r(69),s=r(10),a=r(70),u=r(42),c=r(132),l=a.IncomingMessage,f=a.readyStates;var h=t.exports=function(t){var r,n=this;u.Writable.call(n),n._opts=t,n._body=[],n._headers={},t.auth&&n.setHeader(\"Authorization\",\"Basic \"+new e(t.auth).toString(\"base64\")),Object.keys(t.headers).forEach((function(e){n.setHeader(e,t.headers[e])}));var i=!0;if(\"disable-fetch\"===t.mode||\"requestTimeout\"in t&&!o.abortController)i=!1,r=!0;else if(\"prefer-streaming\"===t.mode)r=!1;else if(\"allow-wrong-content-type\"===t.mode)r=!o.overrideMimeType;else{if(t.mode&&\"default\"!==t.mode&&\"prefer-fast\"!==t.mode)throw new Error(\"Invalid value for opts.mode\");r=!0}n._mode=function(t,e){return o.fetch&&e?\"fetch\":o.mozchunkedarraybuffer?\"moz-chunked-arraybuffer\":o.msstream?\"ms-stream\":o.arraybuffer&&t?\"arraybuffer\":o.vbArray&&t?\"text:vbarray\":\"text\"}(r,i),n._fetchTimer=null,n.on(\"finish\",(function(){n._onFinish()}))};s(h,u.Writable),h.prototype.setHeader=function(t,e){var r=t.toLowerCase();-1===d.indexOf(r)&&(this._headers[r]={name:t,value:e})},h.prototype.getHeader=function(t){var e=this._headers[t.toLowerCase()];return e?e.value:null},h.prototype.removeHeader=function(t){delete this._headers[t.toLowerCase()]},h.prototype._onFinish=function(){var t=this;if(!t._destroyed){var r=t._opts,s=t._headers,a=null;\"GET\"!==r.method&&\"HEAD\"!==r.method&&(a=o.arraybuffer?c(e.concat(t._body)):o.blobConstructor?new n.Blob(t._body.map((function(t){return c(t)})),{type:(s[\"content-type\"]||{}).value||\"\"}):e.concat(t._body).toString());var u=[];if(Object.keys(s).forEach((function(t){var e=s[t].name,r=s[t].value;Array.isArray(r)?r.forEach((function(t){u.push([e,t])})):u.push([e,r])})),\"fetch\"===t._mode){var l=null;if(o.abortController){var h=new AbortController;l=h.signal,t._fetchAbortController=h,\"requestTimeout\"in r&&0!==r.requestTimeout&&(t._fetchTimer=n.setTimeout((function(){t.emit(\"requestTimeout\"),t._fetchAbortController&&t._fetchAbortController.abort()}),r.requestTimeout))}n.fetch(t._opts.url,{method:t._opts.method,headers:u,body:a||void 0,mode:\"cors\",credentials:r.withCredentials?\"include\":\"same-origin\",signal:l}).then((function(e){t._fetchResponse=e,t._connect()}),(function(e){n.clearTimeout(t._fetchTimer),t._destroyed||t.emit(\"error\",e)}))}else{var d=t._xhr=new n.XMLHttpRequest;try{d.open(t._opts.method,t._opts.url,!0)}catch(e){return void i.nextTick((function(){t.emit(\"error\",e)}))}\"responseType\"in d&&(d.responseType=t._mode.split(\":\")[0]),\"withCredentials\"in d&&(d.withCredentials=!!r.withCredentials),\"text\"===t._mode&&\"overrideMimeType\"in d&&d.overrideMimeType(\"text/plain; charset=x-user-defined\"),\"requestTimeout\"in r&&(d.timeout=r.requestTimeout,d.ontimeout=function(){t.emit(\"requestTimeout\")}),u.forEach((function(t){d.setRequestHeader(t[0],t[1])})),t._response=null,d.onreadystatechange=function(){switch(d.readyState){case f.LOADING:case f.DONE:t._onXHRProgress()}},\"moz-chunked-arraybuffer\"===t._mode&&(d.onprogress=function(){t._onXHRProgress()}),d.onerror=function(){t._destroyed||t.emit(\"error\",new Error(\"XHR error\"))};try{d.send(a)}catch(e){return void i.nextTick((function(){t.emit(\"error\",e)}))}}}},h.prototype._onXHRProgress=function(){(function(t){try{var e=t.status;return null!==e&&0!==e}catch(t){return!1}})(this._xhr)&&!this._destroyed&&(this._response||this._connect(),this._response._onXHRProgress())},h.prototype._connect=function(){var t=this;t._destroyed||(t._response=new l(t._xhr,t._fetchResponse,t._mode,t._fetchTimer),t._response.on(\"error\",(function(e){t.emit(\"error\",e)})),t.emit(\"response\",t._response))},h.prototype._write=function(t,e,r){this._body.push(t),r()},h.prototype.abort=h.prototype.destroy=function(){this._destroyed=!0,n.clearTimeout(this._fetchTimer),this._response&&(this._response._destroyed=!0),this._xhr?this._xhr.abort():this._fetchAbortController&&this._fetchAbortController.abort()},h.prototype.end=function(t,e,r){\"function\"==typeof t&&(r=t,t=void 0),u.Writable.prototype.end.call(this,t,e,r)},h.prototype.flushHeaders=function(){},h.prototype.setTimeout=function(){},h.prototype.setNoDelay=function(){},h.prototype.setSocketKeepAlive=function(){};var d=[\"accept-charset\",\"accept-encoding\",\"access-control-request-headers\",\"access-control-request-method\",\"connection\",\"content-length\",\"cookie\",\"cookie2\",\"date\",\"dnt\",\"expect\",\"host\",\"keep-alive\",\"origin\",\"referer\",\"te\",\"trailer\",\"transfer-encoding\",\"upgrade\",\"via\"]}).call(this,r(9).Buffer,r(3),r(7))},function(t,e,r){var n=r(9).Buffer;t.exports=function(t){if(t instanceof Uint8Array){if(0===t.byteOffset&&t.byteLength===t.buffer.byteLength)return t.buffer;if(\"function\"==typeof t.buffer.slice)return t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}if(n.isBuffer(t)){for(var e=new Uint8Array(t.length),r=t.length,i=0;i= 0x80 (not a basic code point)\",\"invalid-input\":\"Invalid input\"},d=Math.floor,p=String.fromCharCode;function y(t){throw new RangeError(h[t])}function g(t,e){for(var r=t.length,n=[];r--;)n[r]=e(t[r]);return n}function m(t,e){var r=t.split(\"@\"),n=\"\";return r.length>1&&(n=r[0]+\"@\",t=r[1]),n+g((t=t.replace(f,\".\")).split(\".\"),e).join(\".\")}function b(t){for(var e,r,n=[],i=0,o=t.length;i=55296&&e<=56319&&i65535&&(e+=p((t-=65536)>>>10&1023|55296),t=56320|1023&t),e+=p(t)})).join(\"\")}function w(t,e){return t+22+75*(t<26)-((0!=e)<<5)}function x(t,e,r){var n=0;for(t=r?d(t/700):t>>1,t+=d(t/e);t>455;n+=36)t=d(t/35);return d(n+36*t/(t+38))}function _(t){var e,r,n,i,o,s,a,c,l,f,h,p=[],g=t.length,m=0,b=128,w=72;for((r=t.lastIndexOf(\"-\"))<0&&(r=0),n=0;n=128&&y(\"not-basic\"),p.push(t.charCodeAt(n));for(i=r>0?r+1:0;i=g&&y(\"invalid-input\"),((c=(h=t.charCodeAt(i++))-48<10?h-22:h-65<26?h-65:h-97<26?h-97:36)>=36||c>d((u-m)/s))&&y(\"overflow\"),m+=c*s,!(c<(l=a<=w?1:a>=w+26?26:a-w));a+=36)s>d(u/(f=36-l))&&y(\"overflow\"),s*=f;w=x(m-o,e=p.length+1,0==o),d(m/e)>u-b&&y(\"overflow\"),b+=d(m/e),m%=e,p.splice(m++,0,b)}return v(p)}function S(t){var e,r,n,i,o,s,a,c,l,f,h,g,m,v,_,S=[];for(g=(t=b(t)).length,e=128,r=0,o=72,s=0;s=e&&hd((u-r)/(m=n+1))&&y(\"overflow\"),r+=(a-e)*m,e=a,s=0;su&&y(\"overflow\"),h==e){for(c=r,l=36;!(c<(f=l<=o?1:l>=o+26?26:l-o));l+=36)_=c-f,v=36-f,S.push(p(w(f+_%v,0))),c=d(_/v);S.push(p(w(c,0))),o=x(r,m,n==i),r=0,++n}++r,++e}return S.join(\"\")}a={version:\"1.4.1\",ucs2:{decode:b,encode:v},decode:_,encode:S,toASCII:function(t){return m(t,(function(t){return l.test(t)?\"xn--\"+S(t):t}))},toUnicode:function(t){return m(t,(function(t){return c.test(t)?_(t.slice(4).toLowerCase()):t}))}},void 0===(i=function(){return a}.call(e,r,e,t))||(t.exports=i)}()}).call(this,r(136)(t),r(3))},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,\"loaded\",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,\"id\",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},function(t,e,r){\"use strict\";var n=r(138),i=r(149),o=r(46);t.exports={formats:o,parse:i,stringify:n}},function(t,e,r){\"use strict\";var n=r(139),i=r(71),o=r(46),s=Object.prototype.hasOwnProperty,a={brackets:function(t){return t+\"[]\"},comma:\"comma\",indices:function(t,e){return t+\"[\"+e+\"]\"},repeat:function(t){return t}},u=Array.isArray,c=Array.prototype.push,l=function(t,e){c.apply(t,u(e)?e:[e])},f=Date.prototype.toISOString,h=o.default,d={addQueryPrefix:!1,allowDots:!1,charset:\"utf-8\",charsetSentinel:!1,delimiter:\"&\",encode:!0,encoder:i.encode,encodeValuesOnly:!1,format:h,formatter:o.formatters[h],indices:!1,serializeDate:function(t){return f.call(t)},skipNulls:!1,strictNullHandling:!1},p={},y=function t(e,r,o,s,a,c,f,h,y,g,m,b,v,w,x,_){for(var S,A=e,E=_,k=0,T=!1;void 0!==(E=E.get(p))&&!T;){var C=E.get(e);if(k+=1,void 0!==C){if(C===k)throw new RangeError(\"Cyclic object value\");T=!0}void 0===E.get(p)&&(k=0)}if(\"function\"==typeof h?A=h(r,A):A instanceof Date?A=m(A):\"comma\"===o&&u(A)&&(A=i.maybeMap(A,(function(t){return t instanceof Date?m(t):t}))),null===A){if(a)return f&&!w?f(r,d.encoder,x,\"key\",b):r;A=\"\"}if(\"string\"==typeof(S=A)||\"number\"==typeof S||\"boolean\"==typeof S||\"symbol\"==typeof S||\"bigint\"==typeof S||i.isBuffer(A))return f?[v(w?r:f(r,d.encoder,x,\"key\",b))+\"=\"+v(f(A,d.encoder,x,\"value\",b))]:[v(r)+\"=\"+v(String(A))];var O,I=[];if(void 0===A)return I;if(\"comma\"===o&&u(A))w&&f&&(A=i.maybeMap(A,f)),O=[{value:A.length>0?A.join(\",\")||null:void 0}];else if(u(h))O=h;else{var P=Object.keys(A);O=y?P.sort(y):P}for(var R=s&&u(A)&&1===A.length?r+\"[]\":r,j=0;j0?x+w:\"\"}},function(t,e,r){\"use strict\";var n=r(44),i=r(145),o=r(147),s=n(\"%TypeError%\"),a=n(\"%WeakMap%\",!0),u=n(\"%Map%\",!0),c=i(\"WeakMap.prototype.get\",!0),l=i(\"WeakMap.prototype.set\",!0),f=i(\"WeakMap.prototype.has\",!0),h=i(\"Map.prototype.get\",!0),d=i(\"Map.prototype.set\",!0),p=i(\"Map.prototype.has\",!0),y=function(t,e){for(var r,n=t;null!==(r=n.next);n=r)if(r.key===e)return n.next=r.next,r.next=t.next,t.next=r,r};t.exports=function(){var t,e,r,n={assert:function(t){if(!n.has(t))throw new s(\"Side channel does not contain \"+o(t))},get:function(n){if(a&&n&&(\"object\"==typeof n||\"function\"==typeof n)){if(t)return c(t,n)}else if(u){if(e)return h(e,n)}else if(r)return function(t,e){var r=y(t,e);return r&&r.value}(r,n)},has:function(n){if(a&&n&&(\"object\"==typeof n||\"function\"==typeof n)){if(t)return f(t,n)}else if(u){if(e)return p(e,n)}else if(r)return function(t,e){return!!y(t,e)}(r,n);return!1},set:function(n,i){a&&n&&(\"object\"==typeof n||\"function\"==typeof n)?(t||(t=new a),l(t,n,i)):u?(e||(e=new u),d(e,n,i)):(r||(r={key:{},next:null}),function(t,e,r){var n=y(t,e);n?n.value=r:t.next={key:e,next:t.next,value:r}}(r,n,i))}};return n}},function(t,e,r){\"use strict\";var n=\"undefined\"!=typeof Symbol&&Symbol,i=r(141);t.exports=function(){return\"function\"==typeof n&&(\"function\"==typeof Symbol&&(\"symbol\"==typeof n(\"foo\")&&(\"symbol\"==typeof Symbol(\"bar\")&&i())))}},function(t,e,r){\"use strict\";t.exports=function(){if(\"function\"!=typeof Symbol||\"function\"!=typeof Object.getOwnPropertySymbols)return!1;if(\"symbol\"==typeof Symbol.iterator)return!0;var t={},e=Symbol(\"test\"),r=Object(e);if(\"string\"==typeof e)return!1;if(\"[object Symbol]\"!==Object.prototype.toString.call(e))return!1;if(\"[object Symbol]\"!==Object.prototype.toString.call(r))return!1;for(e in t[e]=42,t)return!1;if(\"function\"==typeof Object.keys&&0!==Object.keys(t).length)return!1;if(\"function\"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(t).length)return!1;var n=Object.getOwnPropertySymbols(t);if(1!==n.length||n[0]!==e)return!1;if(!Object.prototype.propertyIsEnumerable.call(t,e))return!1;if(\"function\"==typeof Object.getOwnPropertyDescriptor){var i=Object.getOwnPropertyDescriptor(t,e);if(42!==i.value||!0!==i.enumerable)return!1}return!0}},function(t,e,r){\"use strict\";var n={foo:{}},i=Object;t.exports=function(){return{__proto__:n}.foo===n.foo&&!({__proto__:null}instanceof i)}},function(t,e,r){\"use strict\";var n=\"Function.prototype.bind called on incompatible \",i=Array.prototype.slice,o=Object.prototype.toString;t.exports=function(t){var e=this;if(\"function\"!=typeof e||\"[object Function]\"!==o.call(e))throw new TypeError(n+e);for(var r,s=i.call(arguments,1),a=function(){if(this instanceof r){var n=e.apply(this,s.concat(i.call(arguments)));return Object(n)===n?n:this}return e.apply(t,s.concat(i.call(arguments)))},u=Math.max(0,e.length-s.length),c=[],l=0;l-1?i(r):r}},function(t,e,r){\"use strict\";var n=r(45),i=r(44),o=i(\"%Function.prototype.apply%\"),s=i(\"%Function.prototype.call%\"),a=i(\"%Reflect.apply%\",!0)||n.call(s,o),u=i(\"%Object.getOwnPropertyDescriptor%\",!0),c=i(\"%Object.defineProperty%\",!0),l=i(\"%Math.max%\");if(c)try{c({},\"a\",{value:1})}catch(t){c=null}t.exports=function(t){var e=a(n,s,arguments);if(u&&c){var r=u(e,\"length\");r.configurable&&c(e,\"length\",{value:1+l(0,t.length-(arguments.length-1))})}return e};var f=function(){return a(n,o,arguments)};c?c(t.exports,\"apply\",{value:f}):t.exports.apply=f},function(t,e,r){var n=\"function\"==typeof Map&&Map.prototype,i=Object.getOwnPropertyDescriptor&&n?Object.getOwnPropertyDescriptor(Map.prototype,\"size\"):null,o=n&&i&&\"function\"==typeof i.get?i.get:null,s=n&&Map.prototype.forEach,a=\"function\"==typeof Set&&Set.prototype,u=Object.getOwnPropertyDescriptor&&a?Object.getOwnPropertyDescriptor(Set.prototype,\"size\"):null,c=a&&u&&\"function\"==typeof u.get?u.get:null,l=a&&Set.prototype.forEach,f=\"function\"==typeof WeakMap&&WeakMap.prototype?WeakMap.prototype.has:null,h=\"function\"==typeof WeakSet&&WeakSet.prototype?WeakSet.prototype.has:null,d=\"function\"==typeof WeakRef&&WeakRef.prototype?WeakRef.prototype.deref:null,p=Boolean.prototype.valueOf,y=Object.prototype.toString,g=Function.prototype.toString,m=String.prototype.match,b=String.prototype.slice,v=String.prototype.replace,w=String.prototype.toUpperCase,x=String.prototype.toLowerCase,_=RegExp.prototype.test,S=Array.prototype.concat,A=Array.prototype.join,E=Array.prototype.slice,k=Math.floor,T=\"function\"==typeof BigInt?BigInt.prototype.valueOf:null,C=Object.getOwnPropertySymbols,O=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?Symbol.prototype.toString:null,I=\"function\"==typeof Symbol&&\"object\"==typeof Symbol.iterator,P=\"function\"==typeof Symbol&&Symbol.toStringTag&&(typeof Symbol.toStringTag===I||\"symbol\")?Symbol.toStringTag:null,R=Object.prototype.propertyIsEnumerable,j=(\"function\"==typeof Reflect?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(t){return t.__proto__}:null);function M(t,e){if(t===1/0||t===-1/0||t!=t||t&&t>-1e3&&t<1e3||_.call(/e/,e))return e;var r=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if(\"number\"==typeof t){var n=t<0?-k(-t):k(t);if(n!==t){var i=String(n),o=b.call(e,i.length+1);return v.call(i,r,\"$&_\")+\".\"+v.call(v.call(o,/([0-9]{3})/g,\"$&_\"),/_$/,\"\")}}return v.call(e,r,\"$&_\")}var L=r(148),F=L.custom,N=q(F)?F:null;function D(t,e,r){var n=\"double\"===(r.quoteStyle||e)?\\'\"\\':\"\\'\";return n+t+n}function U(t){return v.call(String(t),/\"/g,\""\")}function B(t){return!(\"[object Array]\"!==W(t)||P&&\"object\"==typeof t&&P in t)}function G(t){return!(\"[object RegExp]\"!==W(t)||P&&\"object\"==typeof t&&P in t)}function q(t){if(I)return t&&\"object\"==typeof t&&t instanceof Symbol;if(\"symbol\"==typeof t)return!0;if(!t||\"object\"!=typeof t||!O)return!1;try{return O.call(t),!0}catch(t){}return!1}t.exports=function t(e,r,n,i){var a=r||{};if(H(a,\"quoteStyle\")&&\"single\"!==a.quoteStyle&&\"double\"!==a.quoteStyle)throw new TypeError(\\'option \"quoteStyle\" must be \"single\" or \"double\"\\');if(H(a,\"maxStringLength\")&&(\"number\"==typeof a.maxStringLength?a.maxStringLength<0&&a.maxStringLength!==1/0:null!==a.maxStringLength))throw new TypeError(\\'option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`\\');var u=!H(a,\"customInspect\")||a.customInspect;if(\"boolean\"!=typeof u&&\"symbol\"!==u)throw new TypeError(\"option \\\\\"customInspect\\\\\", if provided, must be `true`, `false`, or `\\'symbol\\'`\");if(H(a,\"indent\")&&null!==a.indent&&\"\\\\t\"!==a.indent&&!(parseInt(a.indent,10)===a.indent&&a.indent>0))throw new TypeError(\\'option \"indent\" must be \"\\\\\\\\t\", an integer > 0, or `null`\\');if(H(a,\"numericSeparator\")&&\"boolean\"!=typeof a.numericSeparator)throw new TypeError(\\'option \"numericSeparator\", if provided, must be `true` or `false`\\');var y=a.numericSeparator;if(void 0===e)return\"undefined\";if(null===e)return\"null\";if(\"boolean\"==typeof e)return e?\"true\":\"false\";if(\"string\"==typeof e)return function t(e,r){if(e.length>r.maxStringLength){var n=e.length-r.maxStringLength,i=\"... \"+n+\" more character\"+(n>1?\"s\":\"\");return t(b.call(e,0,r.maxStringLength),r)+i}return D(v.call(v.call(e,/([\\'\\\\\\\\])/g,\"\\\\\\\\$1\"),/[\\\\x00-\\\\x1f]/g,K),\"single\",r)}(e,a);if(\"number\"==typeof e){if(0===e)return 1/0/e>0?\"0\":\"-0\";var w=String(e);return y?M(e,w):w}if(\"bigint\"==typeof e){var _=String(e)+\"n\";return y?M(e,_):_}var k=void 0===a.depth?5:a.depth;if(void 0===n&&(n=0),n>=k&&k>0&&\"object\"==typeof e)return B(e)?\"[Array]\":\"[Object]\";var C=function(t,e){var r;if(\"\\\\t\"===t.indent)r=\"\\\\t\";else{if(!(\"number\"==typeof t.indent&&t.indent>0))return null;r=A.call(Array(t.indent+1),\" \")}return{base:r,prev:A.call(Array(e+1),r)}}(a,n);if(void 0===i)i=[];else if(V(i,e)>=0)return\"[Circular]\";function F(e,r,o){if(r&&(i=E.call(i)).push(r),o){var s={depth:a.depth};return H(a,\"quoteStyle\")&&(s.quoteStyle=a.quoteStyle),t(e,s,n+1,i)}return t(e,a,n+1,i)}if(\"function\"==typeof e&&!G(e)){var z=function(t){if(t.name)return t.name;var e=m.call(g.call(t),/^function\\\\s*([\\\\w$]+)/);if(e)return e[1];return null}(e),J=Q(e,F);return\"[Function\"+(z?\": \"+z:\" (anonymous)\")+\"]\"+(J.length>0?\" { \"+A.call(J,\", \")+\" }\":\"\")}if(q(e)){var tt=I?v.call(String(e),/^(Symbol\\\\(.*\\\\))_[^)]*$/,\"$1\"):O.call(e);return\"object\"!=typeof e||I?tt:$(tt)}if(function(t){if(!t||\"object\"!=typeof t)return!1;if(\"undefined\"!=typeof HTMLElement&&t instanceof HTMLElement)return!0;return\"string\"==typeof t.nodeName&&\"function\"==typeof t.getAttribute}(e)){for(var et=\"<\"+x.call(String(e.nodeName)),rt=e.attributes||[],nt=0;nt\",e.childNodes&&e.childNodes.length&&(et+=\"...\"),et+=\"\"}if(B(e)){if(0===e.length)return\"[]\";var it=Q(e,F);return C&&!function(t){for(var e=0;e=0)return!1;return!0}(it)?\"[\"+X(it,C)+\"]\":\"[ \"+A.call(it,\", \")+\" ]\"}if(function(t){return!(\"[object Error]\"!==W(t)||P&&\"object\"==typeof t&&P in t)}(e)){var ot=Q(e,F);return\"cause\"in Error.prototype||!(\"cause\"in e)||R.call(e,\"cause\")?0===ot.length?\"[\"+String(e)+\"]\":\"{ [\"+String(e)+\"] \"+A.call(ot,\", \")+\" }\":\"{ [\"+String(e)+\"] \"+A.call(S.call(\"[cause]: \"+F(e.cause),ot),\", \")+\" }\"}if(\"object\"==typeof e&&u){if(N&&\"function\"==typeof e[N]&&L)return L(e,{depth:k-n});if(\"symbol\"!==u&&\"function\"==typeof e.inspect)return e.inspect()}if(function(t){if(!o||!t||\"object\"!=typeof t)return!1;try{o.call(t);try{c.call(t)}catch(t){return!0}return t instanceof Map}catch(t){}return!1}(e)){var st=[];return s&&s.call(e,(function(t,r){st.push(F(r,e,!0)+\" => \"+F(t,e))})),Z(\"Map\",o.call(e),st,C)}if(function(t){if(!c||!t||\"object\"!=typeof t)return!1;try{c.call(t);try{o.call(t)}catch(t){return!0}return t instanceof Set}catch(t){}return!1}(e)){var at=[];return l&&l.call(e,(function(t){at.push(F(t,e))})),Z(\"Set\",c.call(e),at,C)}if(function(t){if(!f||!t||\"object\"!=typeof t)return!1;try{f.call(t,f);try{h.call(t,h)}catch(t){return!0}return t instanceof WeakMap}catch(t){}return!1}(e))return Y(\"WeakMap\");if(function(t){if(!h||!t||\"object\"!=typeof t)return!1;try{h.call(t,h);try{f.call(t,f)}catch(t){return!0}return t instanceof WeakSet}catch(t){}return!1}(e))return Y(\"WeakSet\");if(function(t){if(!d||!t||\"object\"!=typeof t)return!1;try{return d.call(t),!0}catch(t){}return!1}(e))return Y(\"WeakRef\");if(function(t){return!(\"[object Number]\"!==W(t)||P&&\"object\"==typeof t&&P in t)}(e))return $(F(Number(e)));if(function(t){if(!t||\"object\"!=typeof t||!T)return!1;try{return T.call(t),!0}catch(t){}return!1}(e))return $(F(T.call(e)));if(function(t){return!(\"[object Boolean]\"!==W(t)||P&&\"object\"==typeof t&&P in t)}(e))return $(p.call(e));if(function(t){return!(\"[object String]\"!==W(t)||P&&\"object\"==typeof t&&P in t)}(e))return $(F(String(e)));if(!function(t){return!(\"[object Date]\"!==W(t)||P&&\"object\"==typeof t&&P in t)}(e)&&!G(e)){var ut=Q(e,F),ct=j?j(e)===Object.prototype:e instanceof Object||e.constructor===Object,lt=e instanceof Object?\"\":\"null prototype\",ft=!ct&&P&&Object(e)===e&&P in e?b.call(W(e),8,-1):lt?\"Object\":\"\",ht=(ct||\"function\"!=typeof e.constructor?\"\":e.constructor.name?e.constructor.name+\" \":\"\")+(ft||lt?\"[\"+A.call(S.call([],ft||[],lt||[]),\": \")+\"] \":\"\");return 0===ut.length?ht+\"{}\":C?ht+\"{\"+X(ut,C)+\"}\":ht+\"{ \"+A.call(ut,\", \")+\" }\"}return String(e)};var z=Object.prototype.hasOwnProperty||function(t){return t in this};function H(t,e){return z.call(t,e)}function W(t){return y.call(t)}function V(t,e){if(t.indexOf)return t.indexOf(e);for(var r=0,n=t.length;r-1?t.split(\",\"):t},c=function(t,e,r,n){if(t){var o=r.allowDots?t.replace(/\\\\.([^.[]+)/g,\"[$1]\"):t,s=/(\\\\[[^[\\\\]]*])/g,a=r.depth>0&&/(\\\\[[^[\\\\]]*])/.exec(o),c=a?o.slice(0,a.index):o,l=[];if(c){if(!r.plainObjects&&i.call(Object.prototype,c)&&!r.allowPrototypes)return;l.push(c)}for(var f=0;r.depth>0&&null!==(a=s.exec(o))&&f=0;--o){var s,a=t[o];if(\"[]\"===a&&r.parseArrays)s=[].concat(i);else{s=r.plainObjects?Object.create(null):{};var c=\"[\"===a.charAt(0)&&\"]\"===a.charAt(a.length-1)?a.slice(1,-1):a,l=parseInt(c,10);r.parseArrays||\"\"!==c?!isNaN(l)&&a!==c&&String(l)===c&&l>=0&&r.parseArrays&&l<=r.arrayLimit?(s=[])[l]=i:\"__proto__\"!==c&&(s[c]=i):s={0:i}}i=s}return i}(l,e,r,n)}};t.exports=function(t,e){var r=function(t){if(!t)return s;if(null!==t.decoder&&void 0!==t.decoder&&\"function\"!=typeof t.decoder)throw new TypeError(\"Decoder has to be a function.\");if(void 0!==t.charset&&\"utf-8\"!==t.charset&&\"iso-8859-1\"!==t.charset)throw new TypeError(\"The charset option must be either utf-8, iso-8859-1, or undefined\");var e=void 0===t.charset?s.charset:t.charset;return{allowDots:void 0===t.allowDots?s.allowDots:!!t.allowDots,allowPrototypes:\"boolean\"==typeof t.allowPrototypes?t.allowPrototypes:s.allowPrototypes,allowSparse:\"boolean\"==typeof t.allowSparse?t.allowSparse:s.allowSparse,arrayLimit:\"number\"==typeof t.arrayLimit?t.arrayLimit:s.arrayLimit,charset:e,charsetSentinel:\"boolean\"==typeof t.charsetSentinel?t.charsetSentinel:s.charsetSentinel,comma:\"boolean\"==typeof t.comma?t.comma:s.comma,decoder:\"function\"==typeof t.decoder?t.decoder:s.decoder,delimiter:\"string\"==typeof t.delimiter||n.isRegExp(t.delimiter)?t.delimiter:s.delimiter,depth:\"number\"==typeof t.depth||!1===t.depth?+t.depth:s.depth,ignoreQueryPrefix:!0===t.ignoreQueryPrefix,interpretNumericEntities:\"boolean\"==typeof t.interpretNumericEntities?t.interpretNumericEntities:s.interpretNumericEntities,parameterLimit:\"number\"==typeof t.parameterLimit?t.parameterLimit:s.parameterLimit,parseArrays:!1!==t.parseArrays,plainObjects:\"boolean\"==typeof t.plainObjects?t.plainObjects:s.plainObjects,strictNullHandling:\"boolean\"==typeof t.strictNullHandling?t.strictNullHandling:s.strictNullHandling}}(e);if(\"\"===t||null==t)return r.plainObjects?Object.create(null):{};for(var l=\"string\"==typeof t?function(t,e){var r,c={__proto__:null},l=e.ignoreQueryPrefix?t.replace(/^\\\\?/,\"\"):t,f=e.parameterLimit===1/0?void 0:e.parameterLimit,h=l.split(e.delimiter,f),d=-1,p=e.charset;if(e.charsetSentinel)for(r=0;r-1&&(g=o(g)?[g]:g),i.call(c,y)?c[y]=n.combine(c[y],g):c[y]=g}return c}(t,r):t,f=r.plainObjects?Object.create(null):{},h=Object.keys(l),d=0;d{e&&console.log(\"starting getPalette with image\",t);const{fileDirectory:r}=t,{BitsPerSample:n,ColorMap:i,ImageLength:o,ImageWidth:s,PhotometricInterpretation:a,SampleFormat:u,SamplesPerPixel:c}=r;if(!i)throw new Error(\"[geotiff-palette]: the image does not contain a color map, so we can\\'t make a palette.\");const l=Math.pow(2,n);e&&console.log(\"[geotiff-palette]: count:\",l);const f=i.length/3;if(e&&console.log(\"[geotiff-palette]: bandSize:\",f),f!==l)throw new Error(\"[geotiff-palette]: can\\'t handle situations where the color map has more or less values than the number of possible values in a raster\");const h=f,d=h+f,p=[];for(let t=0;te in t?i(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,c=(t,e)=>i(t,\"name\",{value:e,configurable:!0});const l=r(152),f=r(187),h=r(189),d=c(t=>new Array(t).fill(0).map((t,e)=>e),\"range\");function p(t,e={}){var r=e,{bands:n,height:i,precise:c=!1,stats:p,width:y,layout:g}=r,m=((t,e)=>{var r={};for(var n in t)s.call(t,n)&&e.indexOf(n)<0&&(r[n]=t[n]);if(null!=t&&o)for(var n of o(t))e.indexOf(n)<0&&a.call(t,n)&&(r[n]=t[n]);return r})(r,[\"bands\",\"height\",\"precise\",\"stats\",\"width\",\"layout\"]);if(\"function\"==typeof t.then)throw new Error(\"[calc-image-stats] you passed in a promise as the data values. please resolve the promise first before calling calcImageStats\");const b=f({bands:n,data:t,height:i,layout:g,width:y});null!=n||(n=b.bands),null!=i||(i=b.height),null!=g||(g=b.layout),null!=y||(y=b.width);const v=d(n).map(e=>{let r;const f=((t,e)=>{for(var r in e||(e={}))s.call(e,r)&&u(t,r,e[r]);if(o)for(var r of o(e))a.call(e,r)&&u(t,r,e[r]);return t})({precise:c,stats:p},m);if([\"[band][row,column]\",\"[band][column,row]\"].includes(g))r=t[e];else if([\"[band][row][column]\",\"[band][column][row]\"].includes(g))r=t[e],f.chunked=!0;else if(1===n&&[\"[band,row,column]\",\"[row,column,band]\",\"[column,band,row]\",\"[column,row,band]\"].includes(g))r=t;else{const o={band:[e,e]},s={band:n,column:y,row:i};r=h.iterClip({data:t,layout:g,rect:o,sizes:s})}return l(r,f)});return{depth:n,height:i,width:y,bands:v}}c(p,\"calcImageStats\"),void 0!==(n=function(){return p}.call(e,r,e,t))&&(t.exports=n),t.exports=p,t.exports.default=p,t.exports.calcImageStats=p,\"object\"==typeof self&&(self.calcImageStats=p),\"object\"==typeof window&&(self.calcImageStats=p)},function(t,e,r){var n;const{getOrCreateIterator:i}=r(72),{add:o,compare:s,divide:a,mean:u,multiply:c,pow:l,sort:f,subtract:h,sum:d}=r(153),p=r(176);function y(t,{async:e=!1,chunked:r=!1,noData:n,filter:d,calcCount:y=!0,calcHistogram:g=!0,calcInvalid:m=!0,calcMax:b=!0,calcMean:v=!0,calcMedian:w=!0,calcMin:x=!0,calcMode:_=!0,calcModes:S=!0,calcProduct:A=!0,calcRange:E=!0,calcStd:k=!0,calcSum:T=!0,calcValid:C=!0,calcVariance:O=!0,calcUniques:I=!0,precise:P=!1,precise_max_decimal_digits:R=100,stats:j}={debugLevel:0}){j&&(j.forEach(t=>{[\"count\",\"histogram\",\"invalid\",\"max\",\"mean\",\"median\",\"min\",\"mode\",\"modes\",\"product\",\"range\",\"sum\",\"std\",\"valid\",\"variance\",\"uniques\"].includes(t)||console.warn(`[calc-stats] skipping unknown stat \"${t}\"`)}),y=j.includes(\"count\"),g=j.includes(\"histogram\"),m=j.includes(\"invalid\"),b=j.includes(\"max\"),v=j.includes(\"mean\"),w=j.includes(\"median\"),x=j.includes(\"min\"),_=j.includes(\"mode\"),S=j.includes(\"modes\"),A=j.includes(\"product\"),E=j.includes(\"range\"),k=j.includes(\"std\"),T=j.includes(\"sum\"),C=j.includes(\"valid\"),O=j.includes(\"variance\"),I=j.includes(\"uniques\"));const M=i(t);let L,F,N,D=g||w||_||S||O||k||I,U=y||v||w||A||C||O||k||\"function\"==typeof d,B=y||m||\"function\"==typeof d,G=T||v||O||k,q=x||E,z=b||E,H=A,W=0,V=0,K=0,$=P?\"0\":0;const Y={};let Z,X;Z=P?t=>{t=t.toString(),U&&W++,!q||void 0!==L&&\"<\"!==s(t,L)||(L=t),!z||void 0!==F&&\">\"!==s(t,F)||(F=t),H&&(N=1===W?t:c(N,t)),G&&($=o($,t)),D&&(t in Y?Y[t].ct++:Y[t]={n:t.toString(),ct:1})}:t=>{U&&W++,q&&(void 0===L||tF)&&(F=t),H&&(N=1===W?t:N*t),G&&($+=t),D&&(t in Y?Y[t].ct++:Y[t]={n:t,ct:1})},X=\"number\"==typeof n&&\"function\"==typeof d?t=>{K++,\"number\"!=typeof t||isNaN(t)||t===n||!0!==d({valid:W,index:K,value:t})?B&&V++:Z(t)}:\"number\"==typeof n?t=>{\"number\"!=typeof t||isNaN(t)||t===n?B&&V++:Z(t)}:\"function\"==typeof d?t=>{K++,\"number\"!=typeof t||isNaN(t)||!0!==d({valid:W,index:K,value:t})?B&&V++:Z(t)}:t=>{\"number\"!=typeof t||isNaN(t)?B&&V++:Z(t)};const Q=()=>{const t={};if(y&&(t.count=P?o(V.toString(),W.toString()):V+W),C&&(t.valid=P?W.toString():W),m&&(t.invalid=P?V.toString():V),w&&(t.median=p.calculate({counts:Y,precise:P,total:W})),x&&(t.min=L),b&&(t.max=F),A&&(t.product=N),T&&(t.sum=$),E&&(t.range=P?h(F.toString(),L.toString()):F-L),v||O||k){const e=P?a($,W.toString(),{max_decimal_digits:R}):$/W;if(v&&(t.mean=e),O||k){const r=(({count:t,histogram:e,mean_value:r,precise:n=!1})=>{if(n){r=r.toString();const n=Object.values(e).reduce((t,{n:e,ct:n})=>{const i=h(e.toString(),r);return o(t,c(n.toString(),l(i,\"2\")))},\"0\");return a(n,t.toString())}return Object.values(e).reduce((t,{n:e,ct:n})=>t+n*Math.pow(e-r,2),0)/t})({count:W,histogram:Y,mean_value:e,precise:P});O&&(t.variance=r),k&&(t.std=P?Math.sqrt(Number(r)).toString():Math.sqrt(r))}}if(g&&(P&&Object.values(Y).forEach(t=>{t.ct=t.ct.toString()}),t.histogram=Y),_||S){let e=0,r=[];for(let t in Y){const{n:n,ct:i}=Y[t];i===e?r.push(P?n.toString():n):i>e&&(e=i,r=[P?n.toString():n])}S&&(t.modes=r),_&&(t.mode=P?u(r):r.reduce((t,e)=>t+e,0)/r.length)}return I&&(t.uniques=P?f(Object.keys(Y)):Object.values(Y).map(({n:t})=>t).sort((t,e)=>t-e)),t};if(r){if(e)return(async()=>{for await(let t of M)for(let e of t)X(e);return Q()})();for(let t of M)for(let e of t)X(e);return Q()}if(e)return(async()=>{for await(let t of M)X(t);return Q()})();for(let t of M)X(t);return Q()}void 0===(n=function(){return y}.call(e,r,e,t))||(t.exports=n),t.exports=y,t.exports.default=y,t.exports.calcStats=y,\"object\"==typeof self&&(self.calcStats=y),\"object\"==typeof window&&(window.calcStats=y)},function(t,e,r){\"use strict\";var n;const i=r(4),o=r(6),s=r(154),a=r(76),u=r(0),c=r(34),l=r(5),f=r(156),h=r(158),d=r(51),p=r(84),y=r(162),g=r(163),m=r(1),b=r(88),v=r(89),w=r(73),x=r(75),_=r(164),S=r(165),A=r(77),E=r(166),k=r(167),T=r(15),C=r(16),O=r(90),I=r(91),P=r(11),R=r(8),j=r(32),M=r(48),L=r(31),F=r(168),N={absolute:i,add:o,binomial_coefficient:s,ceil:a,clean:u,compare:c,compare_positive:l,constants:f,cosine_radians:h,count_decimal_digits:d,count_integer_digits:p,cube:y,cube_root:g,divide:m,eulers_number:b,exp:v,expand:w,factorial:x,flip_sign:_,floor:S,fraction:A,hypotenuse:E,is_infinity:T,is_integer:C,is_factorial:k,is_negative_infinity:O,is_positive_infinity:I,is_zero:P,long_addition:R,long_division:j,long_multiplication:M,long_subtraction:L,mean:r(169),max:F,min:r(86),multiply:r(53),multiply_array:r(79),multiply_range:r(47),nilakantha:r(170),ols:r(171),pow:r(35),pow_positive:r(54),primes:r(87),reciprocal:r(81),remainder:r(172),root:r(37),root_integer_digits:r(83),round:r(36),round_last_decimal:r(49),sign:r(22),sign_nonzero:r(50),simplify_fraction:r(85),sine_radians:r(173),softmax:r(174),sort:r(175),square:r(23),square_root:r(92),subtract:r(33),sum:r(55),truncate:r(93)};void 0===(n=function(){return N}.call(e,r,e,t))||(t.exports=n),t.exports=N,t.exports.default=N,\"object\"==typeof window&&(window.preciso=N),\"object\"==typeof self&&(self.preciso=N)},function(t,e,r){\"use strict\";const n=r(0),i=r(5),o=r(75),s=r(8),a=r(31),u=r(32),c=r(47);function l(t,e){switch(t=n(t),e=n(e),i(t,e)){case\"=\":return\"1\";case\">\":{const r=a(t,e),n=c(s(e,\"1\"),t),i=o(r);return u(n,i)}case\"<\":throw new Error(\"[binominal_coefficient] unsupported\")}}t.exports=l,t.exports.default=l},function(t,e,r){\"use strict\";function n(t){return t.substring(0,t.indexOf(\".\"))}t.exports=n,t.exports.default=n},function(t,e,r){\"use strict\";const{MAX_SAFE_INTEGER:n}=r(74),{MAX_SAFE_INTEGER_LENGTH:i}=r(30),{PI:o}=r(157);t.exports={MAX_SAFE_INTEGER:n,MAX_SAFE_INTEGER_LENGTH:i,PI:o}},function(t,e){t.exports={PI_100:\"3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679\"}},function(t,e,r){\"use strict\";const n=r(6),i=r(11),o=r(23),s=r(17),a=r(1);function u(t,{steps:e=100,max_decimal_digits:r=100}={}){if(i(t))return\"0\";let u,c=\"-\",l=\"1\",f=e,h=o(t),d=\"1\",p=\"1\",y=\"0\";for(let t=0;tn(t));return i(o(s),e)}t.exports=s,t.exports.default=s},function(t,e,r){\"use strict\";function n(t){return!!t.match(/^\\\\d+!$/i)}t.exports=n,t.exports.default=n},function(t,e,r){\"use strict\";const n=r(0),i=r(34);function o(t){\"string\"==typeof t&&(t=Array.prototype.slice.call(arguments));let e=n(t[0]);const r=t.length;for(let n=1;n\"===i(r,e)&&(e=r)}return e}t.exports=o,t.exports.default=o},function(t,e,r){\"use strict\";const n=r(6),i=r(1);function o(t,e){let r=0,o=\"0\";for(let e of t)r++,o=n(o,e);return i(o,r.toString(),e)}t.exports=o,t.exports.default=o},function(t,e,r){\"use strict\";const n=r(6),i=r(8),o=r(1),s=r(17);function a(t=100,{divide_options:e}={}){let r=\"+\",a=\"3\",u=\"2\",c=\"3\",l=\"4\";for(let f=1;fi(t,{max_decimal_digits:e}));const r=o(t);return t.map(t=>n(t,r,{max_decimal_digits:e,ellipsis:!1}))}t.exports=s,t.exports.default=s},function(t,e,r){\"use strict\";const n=r(34);function i(t,{direction:e=\"ascending\"}={direction:\"ascending\"}){const r=\"desc\"===e||\"descending\"===e?\"<\":\">\";return t.sort((t,e)=>n(t,e)===r?1:-1)}t.exports=i,t.exports.default=i},function(t,e,r){var n;const i=r(177),o=r(186);function s({counts:t,nums:e,no_data:r,precise:n,threshold:s=50,total:a}){return void 0!==t||void 0!==a||e.length>s?i({counts:t,no_data:r,nums:e,precise:n,total:a}):o({no_data:r,nums:e,precise:n})}const a={calculate:s};void 0===(n=function(){return a}.call(e,r,e,t))||(t.exports=n),t.exports=a,t.exports.default={calculate:s},\"object\"==typeof window&&(window.mediana=a),\"object\"==typeof self&&(self.mediana=a)},function(t,e,r){const n=r(178),i=r(94);function o({counts:t,nums:e,no_data:r,precise:o=!1,total:s}){void 0!==t&&void 0!==s||({counts:t,total:s}=n({nums:e,no_data:r}));const a=Object.values(t).sort((t,e)=>t.n-e.n),u=s/2,c=a.length;if(0!==c){if(1===c)return o?a[0].n.toString():a[0].n;{let t=0;if(s%2==0)for(let e=0;eu)return t-n===u?i(a[e-1].n,r,{precise:o}):o?r.toString():r}else for(let e=0;eu)return o?r.toString():r}}}}t.exports=o,t.exports.default=o},function(t,e){function r({nums:t,no_data:e}){let r=t.length;const n={};let i=0;if(void 0!==e)for(let o=0;o=a){const t=s-a;let r=o;for(let e=0;es;t--)result+=\"0\";return result+=o,e+result}return e+o.substring(0,s)+\".\"+o.substring(s)}t.exports=r,t.exports.default=r},function(t,e,r){const n=r(98),i=r(18),o=r(181);function s(t,e,r){if(t=i(t),\"0\"===(e=i(e)))throw new Error(\"[preciso] division by zero\");if(\"\"===t||\"0\"===t)return\"0\";const s=\"-\"!==t[0],a=\"-\"!==e[0],u=s!==a?\"-\":\"\";return s||(t=n(t)),a||(e=n(e)),u+o(t,e,r)}t.exports=s,t.exports.default=s},function(t,e,r){const n=r(38),i=r(95),o=(r(182),r(184)),s=r(185);t.exports=function(t,e,{max_decimal_digits:r=100,ellipsis:a=!1}={}){\"0\"===t[0]&&(t=t.substring(1)),\"0\"===e[0]&&(e=e.substring(1));const u=t.indexOf(\".\"),c=e.indexOf(\".\"),l=-1===u?t.length:u,f=-1===c?0:e.length-1-c;let h=!1;t=t.replace(/\\\\./,\"\"),e=e.replace(/\\\\./,\"\");const d=t.length;let p,y=\"\",g=\"\",m=-1*f,b=0;for(let r=0;r\"===p){let t=1,r=i(e,e),s=e;for(;\">\"!==n(r,y);)t++,s=r,r=i(r,e);if(t=t.toString(),\"\"!==g)for(let e=t.length;e<=b;e++)g+=\"0\";g+=t,y=o(y,s),b=0}else{if(\"<\"===p){\"\"===g&&m++,b++;continue}if(\"=\"===p){if(\"\"!==g)for(let t=0;t3){g+=\"...\",h=!0;break}}else t[y]=1;const r=n(y,e);if(\">\"===r){let t=1,r=i(e,e),s=e;for(;\">\"!==n(r,y);)t++,s=r,r=i(r,e);t=t.toString();for(let e=t.length;e<=b;e++)g+=\"0\";if(g+=t,y=o(y,s),\"0\"===y)break;b=0}else{if(\"<\"===r){b++;continue}if(\"=\"===r){for(let t=0;tw){for(let t=w;t0&&(g=s(g.substring(0,g.length-t+1)))}return\".\"===g[0]&&(g=\"0\"+g),g}},function(t,e,r){const n=r(98),i=r(18),o=r(38),s=r(183);function a(t,e){t=i(t),e=i(e);const r=\"-\"!==t[0]!==(\"-\"!==e[0])?\"-\":\"\";t=n(t),e=n(e);if(\"<\"===o(t,e)){const r=t;t=e,e=r}return r+s(t,e)}t.exports=a,t.exports.default=a},function(t,e,r){const{MAX_SAFE_INTEGER_LENGTH:n}=r(56);t.exports=function(t,e){if(\"0\"===t||\"0\"===e)return\"0\";const r=t.indexOf(\".\"),i=e.indexOf(\".\"),o=(-1===r?t.length:r)+(-1===i?e.length:i),s=(-1===r?0:t.length-1-r)+(-1===i?0:e.length-1-i);if(0===s&&o=0;){const t=h,e=h-=15,r=a.substring(e,t);f.push([Number(r),r.length])}const d=[],p=[];for(let t=0,e=l-1;e>=0;e--,t++){const r=u[e],n=Number(r);let i=0,o=\"\";const s=f.length-1;f.forEach(([t,e],r)=>{let a=(i+n*t).toString();const u=a.length;if(u>e&&r!==s){const t=-1*e;o=a.slice(t)+o,i=Number(a.slice(0,t))}else{const t=e-u;for(let e=0;eNumber(t)),o.length])}const y=d.length,g=p[p.length-1][1]+y;let m=\"\",b=0;for(let t=0;t=0&&(e+=r[o])}e>=10?(e=e.toString(),m=e[e.length-1]+m,b=Number(e.slice(0,-1))):(m=e+m,b=0)}if(0===s)m=m.replace(/^0+/,\"\");else{const t=m.length-s;m=m.substring(0,t)+\".\"+m.substring(t),m=m.replace(/^0+/,\"\"),m=m.replace(/\\\\.?0+$/,\"\"),\".\"===m[0]&&(m=\"0\"+m)}return m}},function(t,e,r){const n=r(18),i=r(38),o=r(96),s=r(97);function a(t,e){t=n(t),e=n(e);const r=\"-\"!==t[0],a=\"-\"!==e[0];if(r){if(a){const r=i(t,e);return\">\"===r?s(t,e):\"<\"===r?\"-\"+s(e,t):\"0\"}return o(t,e.substring(1))}if(a)return\"-\"+o(t.substring(1),e);{t=t.substring(1),e=e.substring(1);const r=i(t,e);return\">\"===r?\"-\"+s(t,e):\"<\"===r?s(e,t):\"0\"}}t.exports=a,t.exports.default=a},function(t,e){const r=[\"5\",\"6\",\"7\",\"8\",\"9\"];t.exports=function(t){\"+\"===t[0]&&(t=t.substring(1));const e=t.length;let n=\"\";const i=t[t.length-1];if(r.includes(i)){let r;for(r=e-2;r>=0;r--){const e=t[r];if(\".\"===e||\"-\"===e)continue;const i=Number(e)+1;if(10!==i){n=i+n;break}n=\"0\"+n}r>0&&(n=t.substring(0,r)+n)}else n=t.substring(0,e-1);return\".\"===n[n.length-1]&&(n=n.substring(0,n.length-1)),n.indexOf(\".\")>-1&&(n=n.replace(/0+$/,\"\")),n}},function(t,e,r){const n=r(94);function i({nums:t,no_data:e,precise:r=!1}){switch((t=t.filter(t=>t!==e).sort((t,e)=>t-e)).length){case 0:return;case 1:return r?t[0].toString():t[0];default:const e=t.length/2;if(t.length%2==0)return n(t[e-1],t[e],{precise:r});{const n=Math.floor(e);return r?t[n].toString():t[n]}}}t.exports=i,t.exports.default=i},function(t,e,r){var n;const i=r(188);function o({bands:t,data:e,height:r,layout:n,width:o}){const s=i(e);if(\"[row,column,band]\"===n||1===s)return{layout:\"[row,column,band]\",bands:t||(r&&o?e.length/(r*o):void 0),height:r||(t&&o?e.length/(t*o):void 0),width:o||(t&&r?e.length/(t*r):void 0)};if(2===s){if(!r||!o)return e.lengthArray.isArray(t)||t instanceof Int8Array||t instanceof Uint8Array||t instanceof Uint8ClampedArray||t instanceof Int16Array||t instanceof Uint16Array||t instanceof Int32Array||t instanceof Uint32Array||t instanceof Float32Array||t instanceof Float64Array||t instanceof BigInt64Array||t instanceof BigUint64Array;let r=0,n=t;for(;e(n);)r++,n=n[0];return r}},function(t,e,r){const n={},{wrapNextFunction:i}=r(72),o=r(190),s=r(191),a={Array:Array,Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:Uint8ClampedArray,Int16Array:Int16Array,Uint16Array:Uint16Array,Float32Array:Float32Array,Float64Array:Float64Array};try{a.BigInt64Array=BigInt64Array,a.BigUint64Array=BigUint64Array}catch(t){}const u=t=>t.match(/\\\\[[^\\\\]]+\\\\]/g),c=t=>t.startsWith(\"[\")&&t.endsWith(\"]\")?t.substring(1,t.length-1):t,l=t=>t.startsWith(\"(\")&&t.endsWith(\")\")?t.substring(1,t.length-1):t,f=t=>t.match(/(\\\\(.*?\\\\)|[^\\\\(,\\\\s]+)(?=\\\\s*,|\\\\s*$)/g),h=t=>{t=c(t),t=l(t);const e=f(t);return 1===e.length?{type:\"Vector\",dim:e[0]}:{type:\"Matrix\",parts:e.map(h)}};function d(t){const e=t.match(/[^ A-Za-z,\\\\[\\\\]]/g);if(e)throw new Error(\"The following invalid characters were used: \"+e.map(t=>`\"${t}\"`).join(\", \"));return!0}function p(t,{useLayoutCache:e=!0}={useLayoutCache:!0}){if(e&&t in n)return n[t];d(t);const r=u(t).map(h),i={type:\"Layout\",summary:r.map(t=>\"Matrix\"===t.type?t.parts.length:1),dims:r};return e&&(n[t]=i),i}function y({useLayoutCache:t=!0,data:e,layout:r,sizes:n={}}){\"string\"==typeof r&&(r=p(r,{useLayoutCache:t}));const{dims:i}=r,o=i.length,a=m({useLayoutCache:t,layout:r,sizes:n}),u=o-1,c=r.summary.toString();if(c in s){const t={data:e};return r.dims.map((e,r)=>{\"Vector\"===e.type?t[`d${r}v0`]=e.dim:\"Matrix\"===e.type&&e.parts.forEach((e,n)=>{t[`d${r}v${n}`]=e.dim,t[`m${r}v${n}`]=a[e.dim]})}),s[c].bind(t)}return({point:t,value:r})=>{let n=e;for(let e=0;ee+a[r]*t[r],0),o?n[c]=r:n=n[c]}}}function g({rect:t={}}){if(t)for(let e in t){const r=t[e];if(2!==r.length)throw new Error(\"[xdim] uh oh. invalid hyper-rectangle\");const[n,i]=r;if(n>i)throw new Error(`[xdim] uh oh. invalid range for \"${e}\". Start of ${n} can\\'t be greater than end of ${i}.`);if(n<0)throw new Error(\"[xdim] uh oh. invalid hyper-rectangle with start \"+n)}}function m({useLayoutCache:t=!0,layout:e,sizes:r}){\"string\"==typeof e&&(e=p(e,{useLayoutCache:t}));const{dims:n}=e,i=n.length;let o={};for(let t=0;t=0;e--){const{dim:i}=t[e];o[i]=n,n*=r[t[e].dim]}}}return o}function b({useLayoutCache:t=!0,data:e,layout:r,point:n,sizes:i={}}){let o,s;\"string\"==typeof r&&(r=p(r,{useLayoutCache:t}));let a=e;const{dims:u}=r,c=u.length;for(let t=0;t=0;e--){const o=t[e];if(\"Vector\"===o.type){const{dim:t}=o;if(r+=u*n[t],e>0){if(!(t in i))throw new Error(`you cannot calculate the location without knowing the size of the \"${t}\" dimension.`);u*=i[t]}}}o=a,s=r,a=a[r]}}return{index:s,value:a,parent:o}}function v({arr:t,fill:e,lens:r,arrayTypes:n}){if(0===r.length)return t;const i=r[0];if(1===r.length){const r=n?n[n.length-1]:\"Array\";for(let n=0;n\"Vector\"===t.type?n[t.dim]:\"Matrix\"===t.type?t.parts.reduce((t,e)=>{if(!(e.dim in n))throw new Error(`[xdim] could not find \"${e.dim}\" in sizes: { ${Object.keys(n).join(\", \")} }`);return t*n[e.dim]},1):void 0);return{data:w({fill:t,shape:o,arrayTypes:i}),shape:o,arrayTypes:i}}function _({start:t=0,end:e=100}){let r=t-1;return e+=1,i((function(){return r++,r===e?{done:!0}:{done:!1,value:r}}))}function S({order:t,sizes:e,rect:r={}}){const n=Array.isArray(t)?t:Object.keys(e).sort((t,r)=>e[t]-e[r]),o=new Array(n.length),s={};for(let t=0;t=0;t--){const{value:i,done:a}=o[t].next();if(!a){for(let i=t+1;i{\"Vector\"===e.type?t[`d${r}v0`]=e.dim:\"Matrix\"===e.type&&e.parts.forEach((e,n)=>{t[`d${r}v${n}`]=e.dim,t[`m${r}v${n}`]=a[e.dim]})}),o[c].bind(t)}return({point:t})=>{let r=e;for(let e=0;ee+a[r]*t[r],0),n)return{index:s,parent:r,value:r[s]};r=r[s]}}},prepareUpdate:y,removeBraces:c,removeParentheses:l,select:b,transform:function({data:t,fill:e,from:r,to:n,sizes:i,useLayoutCache:o=!0}){\"string\"==typeof r&&(r=p(r,{useLayoutCache:o})),\"string\"==typeof n&&(n=p(n,{useLayoutCache:o}));const{data:s}=x({fill:e,layout:n,sizes:i}),a=y({useLayoutCache:o,data:s,layout:n,sizes:i}),u=S({sizes:i});for(point of u){const{value:e}=b({data:t,layout:r,point:point,sizes:i});a({point:point,value:e})}return{data:s}},update:function({useLayoutCache:t=!0,data:e,layout:r,point:n,sizes:i={},value:o}){\"string\"==typeof r&&(r=p(r,{useLayoutCache:t}));const{dims:s}=r;for(let t=0;t=0;r--){const o=t[r],{dim:s}=o;if(u+=e*n[s],r>0){if(!(s in i))throw new Error(`you cannot calculate the location without knowing the size of the \"${s}\" dimension.`);e*=i[s]}}}r?e[u]=o:e=e[u]}},clip:function({useLayoutCache:t=!0,data:e,layout:r,rect:n,sizes:i={},flat:o=!1,validate:s=!0}){s&&g({rect:n}),\"string\"==typeof r&&(r=p(r,{useLayoutCache:t}));let a=[e];if(r.dims.forEach(t=>{let e=[];a.forEach(r=>{if(\"Vector\"===t.type){const[i,o]=n[t.dim];e=e.concat(r.slice(i,o+1))}else{const{parts:o}=t;let s=[0],a=1;for(let t=o.length-1;t>=0;t--){const e=o[t],{dim:r}=e,[u,c]=n[r],l=[];for(let t=u;t<=c;t++)s.forEach(e=>{l.push(e+a*t)});s=l,a*=i[r]}s.forEach(t=>{e.push(r[t])})}}),a=e}),o)return{data:a};const u=Object.fromEntries(Object.entries(n).map(([t,[e,r]])=>[t,r-e+1])),{data:c}=x({layout:r,sizes:u}),l=r.dims.length,f=(t,e)=>{if(e===l)for(let e=0;ef(t,e+1))};return f(c,1),{data:c}},validateRect:g}},function(t,e){t.exports={1:function({point:t}){const e=this.data,r=t[this.d0v0];return{parent:e,index:r,value:e[r]}},2:function({point:t}){const e=this.data,r=this.m0v0*t[this.d0v0]+this.m0v1*t[this.d0v1];return{parent:e,index:r,value:e[r]}},3:function({point:t}){const e=this.data,r=this.m0v0*t[this.d0v0]+this.m0v1*t[this.d0v1]+this.m0v2*t[this.d0v2];return{parent:e,index:r,value:e[r]}},4:function({point:t}){const e=this.data,r=this.m0v0*t[this.d0v0]+this.m0v1*t[this.d0v1]+this.m0v2*t[this.d0v2]+this.m0v3*t[this.d0v3];return{parent:e,index:r,value:e[r]}},5:function({point:t}){const e=this.data,r=this.m0v0*t[this.d0v0]+this.m0v1*t[this.d0v1]+this.m0v2*t[this.d0v2]+this.m0v3*t[this.d0v3]+this.m0v4*t[this.d0v4];return{parent:e,index:r,value:e[r]}},\"1,1\":function({point:t}){const e=this.data[t[this.d0v0]],r=t[this.d1v0];return{parent:e,index:r,value:e[r]}},\"1,2\":function({point:t}){const e=this.data[t[this.d0v0]],r=this.m1v0*t[this.d1v0]+this.m1v1*t[this.d1v1];return{parent:e,index:r,value:e[r]}},\"1,3\":function({point:t}){const e=this.data[t[this.d0v0]],r=this.m1v0*t[this.d1v0]+this.m1v1*t[this.d1v1]+this.m1v2*t[this.d1v2];return{parent:e,index:r,value:e[r]}},\"1,4\":function({point:t}){const e=this.data[t[this.d0v0]],r=this.m1v0*t[this.d1v0]+this.m1v1*t[this.d1v1]+this.m1v2*t[this.d1v2]+this.m1v3*t[this.d1v3];return{parent:e,index:r,value:e[r]}},\"1,5\":function({point:t}){const e=this.data[t[this.d0v0]],r=this.m1v0*t[this.d1v0]+this.m1v1*t[this.d1v1]+this.m1v2*t[this.d1v2]+this.m1v3*t[this.d1v3]+this.m1v4*t[this.d1v4];return{parent:e,index:r,value:e[r]}},\"1,1,1\":function({point:t}){const e=this.data[t[this.d0v0]][t[this.d1v0]],r=t[this.d2v0];return{parent:e,index:r,value:e[r]}},\"1,1,2\":function({point:t}){const e=this.data[t[this.d0v0]][t[this.d1v0]],r=this.m2v0*t[this.d2v0]+this.m2v1*t[this.d2v1];return{parent:e,index:r,value:e[r]}},\"1,1,3\":function({point:t}){const e=this.data[t[this.d0v0]][t[this.d1v0]],r=this.m2v0*t[this.d2v0]+this.m2v1*t[this.d2v1]+this.m2v2*t[this.d2v2];return{parent:e,index:r,value:e[r]}},\"1,1,4\":function({point:t}){const e=this.data[t[this.d0v0]][t[this.d1v0]],r=this.m2v0*t[this.d2v0]+this.m2v1*t[this.d2v1]+this.m2v2*t[this.d2v2]+this.m2v3*t[this.d2v3];return{parent:e,index:r,value:e[r]}},\"1,1,5\":function({point:t}){const e=this.data[t[this.d0v0]][t[this.d1v0]],r=this.m2v0*t[this.d2v0]+this.m2v1*t[this.d2v1]+this.m2v2*t[this.d2v2]+this.m2v3*t[this.d2v3]+this.m2v4*t[this.d2v4];return{parent:e,index:r,value:e[r]}},\"1,1,1,1\":function({point:t}){const e=this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]],r=t[this.d3v0];return{parent:e,index:r,value:e[r]}},\"1,1,1,2\":function({point:t}){const e=this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]],r=this.m3v0*t[this.d3v0]+this.m3v1*t[this.d3v1];return{parent:e,index:r,value:e[r]}},\"1,1,1,3\":function({point:t}){const e=this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]],r=this.m3v0*t[this.d3v0]+this.m3v1*t[this.d3v1]+this.m3v2*t[this.d3v2];return{parent:e,index:r,value:e[r]}},\"1,1,1,4\":function({point:t}){const e=this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]],r=this.m3v0*t[this.d3v0]+this.m3v1*t[this.d3v1]+this.m3v2*t[this.d3v2]+this.m3v3*t[this.d3v3];return{parent:e,index:r,value:e[r]}},\"1,1,1,5\":function({point:t}){const e=this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]],r=this.m3v0*t[this.d3v0]+this.m3v1*t[this.d3v1]+this.m3v2*t[this.d3v2]+this.m3v3*t[this.d3v3]+this.m3v4*t[this.d3v4];return{parent:e,index:r,value:e[r]}},\"1,1,1,1,1\":function({point:t}){const e=this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]][t[this.d3v0]],r=t[this.d4v0];return{parent:e,index:r,value:e[r]}},\"1,1,1,1,2\":function({point:t}){const e=this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]][t[this.d3v0]],r=this.m4v0*t[this.d4v0]+this.m4v1*t[this.d4v1];return{parent:e,index:r,value:e[r]}},\"1,1,1,1,3\":function({point:t}){const e=this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]][t[this.d3v0]],r=this.m4v0*t[this.d4v0]+this.m4v1*t[this.d4v1]+this.m4v2*t[this.d4v2];return{parent:e,index:r,value:e[r]}},\"1,1,1,1,4\":function({point:t}){const e=this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]][t[this.d3v0]],r=this.m4v0*t[this.d4v0]+this.m4v1*t[this.d4v1]+this.m4v2*t[this.d4v2]+this.m4v3*t[this.d4v3];return{parent:e,index:r,value:e[r]}},\"1,1,1,1,5\":function({point:t}){const e=this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]][t[this.d3v0]],r=this.m4v0*t[this.d4v0]+this.m4v1*t[this.d4v1]+this.m4v2*t[this.d4v2]+this.m4v3*t[this.d4v3]+this.m4v4*t[this.d4v4];return{parent:e,index:r,value:e[r]}}}},function(t,e){t.exports={1:function({point:t,value:e}){this.data[t[this.d0v0]]=e},2:function({point:t,value:e}){this.data[this.m0v0*t[this.d0v0]+this.m0v1*t[this.d0v1]]=e},3:function({point:t,value:e}){this.data[this.m0v0*t[this.d0v0]+this.m0v1*t[this.d0v1]+this.m0v2*t[this.d0v2]]=e},4:function({point:t,value:e}){this.data[this.m0v0*t[this.d0v0]+this.m0v1*t[this.d0v1]+this.m0v2*t[this.d0v2]+this.m0v3*t[this.d0v3]]=e},5:function({point:t,value:e}){this.data[this.m0v0*t[this.d0v0]+this.m0v1*t[this.d0v1]+this.m0v2*t[this.d0v2]+this.m0v3*t[this.d0v3]+this.m0v4*t[this.d0v4]]=e},\"1,1\":function({point:t,value:e}){this.data[t[this.d0v0]][t[this.d1v0]]=e},\"1,2\":function({point:t,value:e}){this.data[t[this.d0v0]][this.m1v0*t[this.d1v0]+this.m1v1*t[this.d1v1]]=e},\"1,3\":function({point:t,value:e}){this.data[t[this.d0v0]][this.m1v0*t[this.d1v0]+this.m1v1*t[this.d1v1]+this.m1v2*t[this.d1v2]]=e},\"1,4\":function({point:t,value:e}){this.data[t[this.d0v0]][this.m1v0*t[this.d1v0]+this.m1v1*t[this.d1v1]+this.m1v2*t[this.d1v2]+this.m1v3*t[this.d1v3]]=e},\"1,5\":function({point:t,value:e}){this.data[t[this.d0v0]][this.m1v0*t[this.d1v0]+this.m1v1*t[this.d1v1]+this.m1v2*t[this.d1v2]+this.m1v3*t[this.d1v3]+this.m1v4*t[this.d1v4]]=e},\"1,1,1\":function({point:t,value:e}){this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]]=e},\"1,1,2\":function({point:t,value:e}){this.data[t[this.d0v0]][t[this.d1v0]][this.m2v0*t[this.d2v0]+this.m2v1*t[this.d2v1]]=e},\"1,1,3\":function({point:t,value:e}){this.data[t[this.d0v0]][t[this.d1v0]][this.m2v0*t[this.d2v0]+this.m2v1*t[this.d2v1]+this.m2v2*t[this.d2v2]]=e},\"1,1,4\":function({point:t,value:e}){this.data[t[this.d0v0]][t[this.d1v0]][this.m2v0*t[this.d2v0]+this.m2v1*t[this.d2v1]+this.m2v2*t[this.d2v2]+this.m2v3*t[this.d2v3]]=e},\"1,1,5\":function({point:t,value:e}){this.data[t[this.d0v0]][t[this.d1v0]][this.m2v0*t[this.d2v0]+this.m2v1*t[this.d2v1]+this.m2v2*t[this.d2v2]+this.m2v3*t[this.d2v3]+this.m2v4*t[this.d2v4]]=e},\"1,1,1,1\":function({point:t,value:e}){this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]][t[this.d3v0]]=e},\"1,1,1,2\":function({point:t,value:e}){this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]][this.m3v0*t[this.d3v0]+this.m3v1*t[this.d3v1]]=e},\"1,1,1,3\":function({point:t,value:e}){this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]][this.m3v0*t[this.d3v0]+this.m3v1*t[this.d3v1]+this.m3v2*t[this.d3v2]]=e},\"1,1,1,4\":function({point:t,value:e}){this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]][this.m3v0*t[this.d3v0]+this.m3v1*t[this.d3v1]+this.m3v2*t[this.d3v2]+this.m3v3*t[this.d3v3]]=e},\"1,1,1,5\":function({point:t,value:e}){this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]][this.m3v0*t[this.d3v0]+this.m3v1*t[this.d3v1]+this.m3v2*t[this.d3v2]+this.m3v3*t[this.d3v3]+this.m3v4*t[this.d3v4]]=e},\"1,1,1,1,1\":function({point:t,value:e}){this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]][t[this.d3v0]][t[this.d4v0]]=e},\"1,1,1,1,2\":function({point:t,value:e}){this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]][t[this.d3v0]][this.m4v0*t[this.d4v0]+this.m4v1*t[this.d4v1]]=e},\"1,1,1,1,3\":function({point:t,value:e}){this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]][t[this.d3v0]][this.m4v0*t[this.d4v0]+this.m4v1*t[this.d4v1]+this.m4v2*t[this.d4v2]]=e},\"1,1,1,1,4\":function({point:t,value:e}){this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]][t[this.d3v0]][this.m4v0*t[this.d4v0]+this.m4v1*t[this.d4v1]+this.m4v2*t[this.d4v2]+this.m4v3*t[this.d4v3]]=e},\"1,1,1,1,5\":function({point:t,value:e}){this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]][t[this.d3v0]][this.m4v0*t[this.d4v0]+this.m4v1*t[this.d4v1]+this.m4v2*t[this.d4v2]+this.m4v3*t[this.d4v3]+this.m4v4*t[this.d4v4]]=e}}},function(t,e,r){\"use strict\";t.exports={countIn1D:function(t){return t.reduce((function(t,e){return void 0===t[e]?t[e]=1:t[e]++,t}),{})},countIn2D:function(t){return t.reduce((function(t,e){return e.forEach((function(e){void 0===t[e]?t[e]=1:t[e]++})),t}),{})},unflatten:function(t,e){for(var r=e.height,n=e.width,i=[],o=0;o>24)/500+a,c=a-(t[e+2]<<24>>24)/200;u=.95047*(u*u*u>.008856?u*u*u:(u-16/116)/7.787),a=1*(a*a*a>.008856?a*a*a:(a-16/116)/7.787),c=1.08883*(c*c*c>.008856?c*c*c:(c-16/116)/7.787),i=3.2406*u+-1.5372*a+-.4986*c,o=-.9689*u+1.8758*a+.0415*c,s=.0557*u+-.204*a+1.057*c,i=i>.0031308?1.055*i**(1/2.4)-.055:12.92*i,o=o>.0031308?1.055*o**(1/2.4)-.055:12.92*o,s=s>.0031308?1.055*s**(1/2.4)-.055:12.92*s,n[r]=255*Math.max(0,Math.min(1,i)),n[r+1]=255*Math.max(0,Math.min(1,o)),n[r+2]=255*Math.max(0,Math.min(1,s))}return n}function S(t,e){let r=t.length-e,n=0;do{for(let r=e;r>0;r--)t[n+e]+=t[n],n++;r-=e}while(r>0)}function A(t,e,r){let n=0,i=t.length;const o=i/r;for(;i>e;){for(let r=e;r>0;--r)t[n+e]+=t[n],++n;i-=e}const s=t.slice();for(let e=0;e=t.byteLength);++o){let n;if(2===e){switch(i[0]){case 8:n=new Uint8Array(t,o*a*r*s,a*r*s);break;case 16:n=new Uint16Array(t,o*a*r*s,a*r*s/2);break;case 32:n=new Uint32Array(t,o*a*r*s,a*r*s/4);break;default:throw new Error(`Predictor 2 not allowed with ${i[0]} bits per sample.`)}S(n,a)}else 3===e&&(n=new Uint8Array(t,o*a*r*s,a*r*s),A(n,a,s))}return t}(r,n,e?t.TileWidth:t.ImageWidth,e?t.TileLength:t.RowsPerStrip||t.ImageLength,t.BitsPerSample,t.PlanarConfiguration)}return r}}class k extends E{decodeBlock(t){return t}}function T(t,e){for(let r=e.length-1;r>=0;r--)t.push(e[r]);return t}function C(t){const e=new Uint16Array(4093),r=new Uint8Array(4093);for(let t=0;t<=257;t++)e[t]=4096,r[t]=t;let n=258,i=9,o=0;function s(){n=258,i=9}function a(t){const e=function(t,e,r){const n=e%8,i=Math.floor(e/8),o=8-n,s=e+r-8*(i+1);let a=8*(i+2)-(e+r);const u=8*(i+2)-e;if(a=Math.max(0,a),i>=t.length)return console.warn(\"ran off the end of the buffer before finding EOI_CODE (end on input code)\"),257;let c=t[i]&2**(8-n)-1;c<<=r-o;let l=c;if(i+1>>a;e<<=Math.max(0,r-u),l+=e}if(s>8&&i+2>>n}return l}(t,o,i);return o+=i,e}function u(t,i){return r[n]=i,e[n]=t,n++,n-1}function c(t){const n=[];for(let i=t;4096!==i;i=e[i])n.push(r[i]);return n}const l=[];s();const f=new Uint8Array(t);let h,d=a(f);for(;257!==d;){if(256===d){for(s(),d=a(f);256===d;)d=a(f);if(257===d)break;if(d>256)throw new Error(\"corrupted code at scanline \"+d);T(l,c(d)),h=d}else if(d=2**i&&(12===i?h=void 0:i++),d=a(f)}return new Uint8Array(l)}class O extends E{decodeBlock(t){return C(t).buffer}}const I=new Int32Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]);function P(t,e){let r=0;const n=[];let i=16;for(;i>0&&!t[i-1];)--i;n.push({children:[],index:0});let o,s=n[0];for(let a=0;a0;)s=n.pop();for(s.index++,n.push(s);n.length<=a;)n.push(o={children:[],index:0}),s.children[s.index]=o.children,s=o;r++}a+10)return p--,d>>p&1;if(d=t[h++],255===d){const e=t[h++];if(e)throw new Error(\"unexpected marker: \"+(d<<8|e).toString(16))}return p=7,d>>>7}function g(t){let e,r=t;for(;null!==(e=y());){if(r=r[e],\"number\"==typeof r)return r;if(\"object\"!=typeof r)throw new Error(\"invalid huffman sequence\")}return null}function m(t){let e=t,r=0;for(;e>0;){const t=y();if(null===t)return;r=r<<1|t,--e}return r}function b(t){const e=m(t);return e>=1<0)return void v--;let r=o;const n=s;for(;r<=n;){const n=g(t.huffmanTableAC),i=15&n,o=n>>4;if(0===i){if(o<15){v=m(o)+(1<>4,0===r)i<15?(v=m(i)+(1<>4;if(0===n){if(o<15)break;i+=16}else{i+=o;e[I[i]]=b(n),i++}}};let R,j,M=0;j=1===A?n[0].blocksPerLine*n[0].blocksPerColumn:c*r.mcusPerColumn;const L=i||j;for(;M=65488&&R<=65495))break;h+=2}return h-f}function j(t,e){const r=[],{blocksPerLine:n,blocksPerColumn:i}=e,o=n<<3,s=new Int32Array(64),a=new Uint8Array(64);function u(t,r,n){const i=e.quantizationTable;let o,s,a,u,c,l,f,h,d;const p=n;let y;for(y=0;y<64;y++)p[y]=t[y]*i[y];for(y=0;y<8;++y){const t=8*y;0!==p[1+t]||0!==p[2+t]||0!==p[3+t]||0!==p[4+t]||0!==p[5+t]||0!==p[6+t]||0!==p[7+t]?(o=5793*p[0+t]+128>>8,s=5793*p[4+t]+128>>8,a=p[2+t],u=p[6+t],c=2896*(p[1+t]-p[7+t])+128>>8,h=2896*(p[1+t]+p[7+t])+128>>8,l=p[3+t]<<4,f=p[5+t]<<4,d=o-s+1>>1,o=o+s+1>>1,s=d,d=3784*a+1567*u+128>>8,a=1567*a-3784*u+128>>8,u=d,d=c-f+1>>1,c=c+f+1>>1,f=d,d=h+l+1>>1,l=h-l+1>>1,h=d,d=o-u+1>>1,o=o+u+1>>1,u=d,d=s-a+1>>1,s=s+a+1>>1,a=d,d=2276*c+3406*h+2048>>12,c=3406*c-2276*h+2048>>12,h=d,d=799*l+4017*f+2048>>12,l=4017*l-799*f+2048>>12,f=d,p[0+t]=o+h,p[7+t]=o-h,p[1+t]=s+f,p[6+t]=s-f,p[2+t]=a+l,p[5+t]=a-l,p[3+t]=u+c,p[4+t]=u-c):(d=5793*p[0+t]+512>>10,p[0+t]=d,p[1+t]=d,p[2+t]=d,p[3+t]=d,p[4+t]=d,p[5+t]=d,p[6+t]=d,p[7+t]=d)}for(y=0;y<8;++y){const t=y;0!==p[8+t]||0!==p[16+t]||0!==p[24+t]||0!==p[32+t]||0!==p[40+t]||0!==p[48+t]||0!==p[56+t]?(o=5793*p[0+t]+2048>>12,s=5793*p[32+t]+2048>>12,a=p[16+t],u=p[48+t],c=2896*(p[8+t]-p[56+t])+2048>>12,h=2896*(p[8+t]+p[56+t])+2048>>12,l=p[24+t],f=p[40+t],d=o-s+1>>1,o=o+s+1>>1,s=d,d=3784*a+1567*u+2048>>12,a=1567*a-3784*u+2048>>12,u=d,d=c-f+1>>1,c=c+f+1>>1,f=d,d=h+l+1>>1,l=h-l+1>>1,h=d,d=o-u+1>>1,o=o+u+1>>1,u=d,d=s-a+1>>1,s=s+a+1>>1,a=d,d=2276*c+3406*h+2048>>12,c=3406*c-2276*h+2048>>12,h=d,d=799*l+4017*f+2048>>12,l=4017*l-799*f+2048>>12,f=d,p[0+t]=o+h,p[56+t]=o-h,p[8+t]=s+f,p[48+t]=s-f,p[16+t]=a+l,p[40+t]=a-l,p[24+t]=u+c,p[32+t]=u-c):(d=5793*n[y+0]+8192>>14,p[0+t]=d,p[8+t]=d,p[16+t]=d,p[24+t]=d,p[32+t]=d,p[40+t]=d,p[48+t]=d,p[56+t]=d)}for(y=0;y<64;++y){const t=128+(p[y]+8>>4);r[y]=t<0?0:t>255?255:t}}for(let t=0;t>4==0)for(let r=0;r<64;r++){i[I[r]]=t[e++]}else{if(n>>4!=1)throw new Error(\"DQT: invalid table spec\");for(let t=0;t<64;t++){i[I[t]]=r()}}this.quantizationTables[15&n]=i}break}case 65472:case 65473:case 65474:{r();const n={extended:65473===o,progressive:65474===o,precision:t[e++],scanLines:r(),samplesPerLine:r(),components:{},componentsOrder:[]},s=t[e++];let a;for(let r=0;r>4,i=15&t[e+1],o=t[e+2];n.componentsOrder.push(a),n.components[a]={h:r,v:i,quantizationIdx:o},e+=3}i(n),this.frames.push(n);break}case 65476:{const n=r();for(let r=2;r>4==0?this.huffmanTablesDC[15&n]=P(i,s):this.huffmanTablesAC[15&n]=P(i,s)}break}case 65501:r(),this.resetInterval=r();break;case 65498:{r();const n=t[e++],i=[],o=this.frames[0];for(let r=0;r>4],r.huffmanTableAC=this.huffmanTablesAC[15&n],i.push(r)}const s=t[e++],a=t[e++],u=t[e++],c=R(t,e,o,i,this.resetInterval,s,a,u>>4,15&u);e+=c;break}case 65535:255!==t[e]&&e--;break;default:if(255===t[e-3]&&t[e-2]>=192&&t[e-2]<=254){e-=3;break}throw new Error(\"unknown JPEG marker \"+o.toString(16))}o=r()}}getResult(){const{frames:t}=this;if(0===this.frames.length)throw new Error(\"no frames were decoded\");this.frames.length>1&&console.warn(\"more than one frame is not supported\");for(let t=0;t{const a=B(t,n,i);for(let u=0;u{const a=B(t,n,i);for(let u=0;u=this.fileDirectory.BitsPerSample.length)throw new RangeError(`Sample index ${t} is out of range.`);const e=this.fileDirectory.BitsPerSample[t];if(e%8!=0)throw new Error(`Sample bit-width of ${e} is not supported.`);return e/8}getReaderForSample(t){const e=this.fileDirectory.SampleFormat?this.fileDirectory.SampleFormat[t]:1,r=this.fileDirectory.BitsPerSample[t];switch(e){case 1:switch(r){case 8:return DataView.prototype.getUint8;case 16:return DataView.prototype.getUint16;case 32:return DataView.prototype.getUint32}break;case 2:switch(r){case 8:return DataView.prototype.getInt8;case 16:return DataView.prototype.getInt16;case 32:return DataView.prototype.getInt32}break;case 3:switch(r){case 32:return DataView.prototype.getFloat32;case 64:return DataView.prototype.getFloat64}}throw Error(\"Unsupported data format/bitsPerSample\")}getArrayForSample(t,e){return W(this.fileDirectory.SampleFormat?this.fileDirectory.SampleFormat[t]:1,this.fileDirectory.BitsPerSample[t],e)}async getTileOrStrip(t,e,r,n){const i=Math.ceil(this.getWidth()/this.getTileWidth()),o=Math.ceil(this.getHeight()/this.getTileHeight());let s;const{tiles:a}=this;let u,c;1===this.planarConfiguration?s=e*i+t:2===this.planarConfiguration&&(s=r*i*o+e*i+t),this.isTiled?(u=this.fileDirectory.TileOffsets[s],c=this.fileDirectory.TileByteCounts[s]):(u=this.fileDirectory.StripOffsets[s],c=this.fileDirectory.StripByteCounts[s]);const l=await this.source.fetch(u,c);let f;return null===a?f=n.decode(this.fileDirectory,l):a[s]||(f=n.decode(this.fileDirectory,l),a[s]=f),{x:t,y:e,sample:r,data:await f}}async _readRaster(t,e,r,n,i,o,s,a){const u=this.getTileWidth(),c=this.getTileHeight(),l=Math.max(Math.floor(t[0]/u),0),f=Math.min(Math.ceil(t[2]/u),Math.ceil(this.getWidth()/this.getTileWidth())),h=Math.max(Math.floor(t[1]/c),0),d=Math.min(Math.ceil(t[3]/c),Math.ceil(this.getHeight()/this.getTileHeight())),p=t[2]-t[0];let y=this.getBytesPerPixel();const g=[],m=[];for(let t=0;t{const o=i.data,s=new DataView(o),a=i.y*c,f=i.x*u,h=(i.y+1)*c,d=(i.x+1)*u,b=m[l],w=Math.min(c,c-(h-t[3])),x=Math.min(u,u-(d-t[2]));for(let i=Math.max(0,t[1]-a);iu[2]||u[1]>u[3])throw new Error(\"Invalid subsets\");const c=(u[2]-u[0])*(u[3]-u[1]);if(e&&e.length){for(let t=0;t=this.fileDirectory.SamplesPerPixel)return Promise.reject(new RangeError(`Invalid sample index \\'${e[t]}\\'.`))}else for(let t=0;ts[2]||s[1]>s[3])throw new Error(\"Invalid subsets\");const a=this.fileDirectory.PhotometricInterpretation;if(a===d.RGB){let i=[0,1,2];if(this.fileDirectory.ExtraSamples!==p.Unspecified&&o){i=[];for(let t=0;t\"Item\"===t.tagName);t&&(o=o.filter(e=>Number(e.attributes.sample)===t));for(let t=0;t0;let i=!0;for(let o=0;o<8;o++){let s=this._dataView.getUint8(t+(e?o:7-o));n&&(i?0!==s&&(s=255&~(s-1),i=!1):s=255&~s),r+=s*256**o}return n&&(r=-r),r}getUint8(t,e){return this._dataView.getUint8(t,e)}getInt8(t,e){return this._dataView.getInt8(t,e)}getUint16(t,e){return this._dataView.getUint16(t,e)}getInt16(t,e){return this._dataView.getInt16(t,e)}getUint32(t,e){return this._dataView.getUint32(t,e)}getInt32(t,e){return this._dataView.getInt32(t,e)}getFloat32(t,e){return this._dataView.getFloat32(t,e)}getFloat64(t,e){return this._dataView.getFloat64(t,e)}}class ${constructor(t,e,r,n){this._dataView=new DataView(t),this._sliceOffset=e,this._littleEndian=r,this._bigTiff=n}get sliceOffset(){return this._sliceOffset}get sliceTop(){return this._sliceOffset+this.buffer.byteLength}get littleEndian(){return this._littleEndian}get bigTiff(){return this._bigTiff}get buffer(){return this._dataView.buffer}covers(t,e){return this.sliceOffset<=t&&this.sliceTop>=t+e}readUint8(t){return this._dataView.getUint8(t-this._sliceOffset,this._littleEndian)}readInt8(t){return this._dataView.getInt8(t-this._sliceOffset,this._littleEndian)}readUint16(t){return this._dataView.getUint16(t-this._sliceOffset,this._littleEndian)}readInt16(t){return this._dataView.getInt16(t-this._sliceOffset,this._littleEndian)}readUint32(t){return this._dataView.getUint32(t-this._sliceOffset,this._littleEndian)}readInt32(t){return this._dataView.getInt32(t-this._sliceOffset,this._littleEndian)}readFloat32(t){return this._dataView.getFloat32(t-this._sliceOffset,this._littleEndian)}readFloat64(t){return this._dataView.getFloat64(t-this._sliceOffset,this._littleEndian)}readUint64(t){const e=this.readUint32(t),r=this.readUint32(t+4);let n;if(this._littleEndian){if(n=e+2**32*r,!Number.isSafeInteger(n))throw new Error(n+\" exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues\");return n}if(n=2**32*e+r,!Number.isSafeInteger(n))throw new Error(n+\" exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues\");return n}readInt64(t){let e=0;const r=(128&this._dataView.getUint8(t+(this._littleEndian?7:0)))>0;let n=!0;for(let i=0;i<8;i++){let o=this._dataView.getUint8(t+(this._littleEndian?i:7-i));r&&(n?0!==o&&(o=255&~(o-1),n=!1):o=255&~o),e+=o*256**i}return r&&(e=-e),e}readOffset(t){return this._bigTiff?this.readUint64(t):this.readUint32(t)}}var Y=r(68),Z=r(9),X=r(25),Q=r(40),J=r.n(Q),tt=r(105),et=r.n(tt),rt=r(39),nt=r.n(rt);class it{constructor(t,{blockSize:e=65536}={}){this.retrievalFunction=t,this.blockSize=e,this.blockRequests=new Map,this.blocks=new Map,this.blockIdsAwaitingRequest=null}async fetch(t,e,r=!1){const n=t+e,i=[],o=[],s=[];for(let e=Math.floor(t/this.blockSize)*this.blockSize;esetTimeout(e,t))}(),this.blockIdsAwaitingRequest){const t=function(t){if(0===t.length)return[];const e=[];let r=[];e.push(r);for(let n=0;n{const e=await t,i=r*this.blockSize,o=Math.min(i+this.blockSize,e.data.byteLength),s=e.data.slice(i,o);this.blockRequests.delete(n),this.blocks.set(n,{data:s,offset:e.offset+i,length:s.byteLength,top:e.offset+o})})())}}this.blockIdsAwaitingRequest=null}const a=[];for(const t of o)this.blockRequests.has(t)&&a.push(this.blockRequests.get(t));await Promise.all(a),await Promise.all(s);return function(t,e,r){const n=e+r,i=new ArrayBuffer(r),o=new Uint8Array(i);for(const r of t){const t=r.offset-e,i=r.top-n;let s,a=0,u=0;t<0?a=-t:t>0&&(u=t),s=i<0?r.length-a:n-r.offset-a;const c=new Uint8Array(r.data,a,s);o.set(c,u)}return i}(i.map(t=>this.blocks.get(t)),t,e)}async requestData(t,e){const r=await this.retrievalFunction(t,e);return r.length?r.length!==r.data.byteLength&&(r.data=r.data.slice(0,r.length)):r.length=r.data.byteLength,r.top=r.offset+r.length,r}}function ot(t,e){const{forceXHR:r}=e;if(\"function\"==typeof fetch&&!r)return function(t,{headers:e={},blockSize:r}={}){return new it(async(r,n)=>{const i=await fetch(t,{headers:{...e,Range:`bytes=${r}-${r+n-1}`}});if(i.ok){if(206===i.status){return{data:i.arrayBuffer?await i.arrayBuffer():(await i.buffer()).buffer,offset:r,length:n}}{const t=i.arrayBuffer?await i.arrayBuffer():(await i.buffer()).buffer;return{data:t,offset:0,length:t.byteLength}}}throw new Error(\"Error fetching data.\")},{blockSize:r})}(t,e);if(\"undefined\"!=typeof XMLHttpRequest)return function(t,{headers:e={},blockSize:r}={}){return new it(async(r,n)=>new Promise((i,o)=>{const s=new XMLHttpRequest;s.open(\"GET\",t),s.responseType=\"arraybuffer\";const a={...e,Range:`bytes=${r}-${r+n-1}`};for(const[t,e]of Object.entries(a))s.setRequestHeader(t,e);s.onload=()=>{const t=s.response;206===s.status?i({data:t,offset:r,length:n}):i({data:t,offset:0,length:t.byteLength})},s.onerror=o,s.send()}),{blockSize:r})}(t,e);if(J.a.get)return function(t,{headers:e={},blockSize:r}={}){return new it(async(r,n)=>new Promise((i,o)=>{const s=nt.a.parse(t);(\"http:\"===s.protocol?J.a:et.a).get({...s,headers:{...e,Range:`bytes=${r}-${r+n-1}`}},t=>{const e=[];t.on(\"data\",t=>{e.push(t)}),t.on(\"end\",()=>{const t=Z.Buffer.concat(e).buffer;i({data:t,offset:r,length:t.byteLength})})}).on(\"error\",o)}),{blockSize:r})}(t,e);throw new Error(\"No remote source available\")}function st(t){const e=function(t,e,r){return new Promise((n,i)=>{Object(X.open)(t,e,r,(t,e)=>{t?i(t):n(e)})})}(t,\"r\");return{async fetch(t,r){const n=await e,{buffer:i}=await function(...t){return new Promise((e,r)=>{Object(X.read)(...t,(t,n,i)=>{t?r(t):e({bytesRead:n,buffer:i})})})}(n,Z.Buffer.alloc(r),0,r,t);return i.buffer},async close(){const t=await e;return await function(t){return new Promise((e,r)=>{Object(X.close)(t,t=>{t?r(t):e()})})}(t)}}}function at(t,e){for(const r in e)e.hasOwnProperty(r)&&(t[r]=e[r])}function ut(t,e){if(t.length{let r=e;for(;0!==t[r];)r++;return r},readUshort:(t,e)=>t[e]<<8|t[e+1],readShort:(t,e)=>{const r=yt.ui8;return r[0]=t[e+1],r[1]=t[e+0],yt.i16[0]},readInt:(t,e)=>{const r=yt.ui8;return r[0]=t[e+3],r[1]=t[e+2],r[2]=t[e+1],r[3]=t[e+0],yt.i32[0]},readUint:(t,e)=>{const r=yt.ui8;return r[0]=t[e+3],r[1]=t[e+2],r[2]=t[e+1],r[3]=t[e+0],yt.ui32[0]},readASCII:(t,e,r)=>r.map(r=>String.fromCharCode(t[e+r])).join(\"\"),readFloat:(t,e)=>{const r=yt.ui8;return lt(4,n=>{r[n]=t[e+3-n]}),yt.fl32[0]},readDouble:(t,e)=>{const r=yt.ui8;return lt(8,n=>{r[n]=t[e+7-n]}),yt.fl64[0]},writeUshort:(t,e,r)=>{t[e]=r>>8&255,t[e+1]=255&r},writeUint:(t,e,r)=>{t[e]=r>>24&255,t[e+1]=r>>16&255,t[e+2]=r>>8&255,t[e+3]=r>>0&255},writeASCII:(t,e,r)=>{lt(r.length,n=>{t[e+n]=r.charCodeAt(n)})},ui8:new Uint8Array(8)};yt.fl64=new Float64Array(yt.ui8.buffer),yt.writeDouble=(t,e,r)=>{yt.fl64[0]=r,lt(8,r=>{t[e+r]=yt.ui8[7-r]})};const gt=t=>{const e=new Uint8Array(1e3);let r=4;const n=yt;e[0]=77,e[1]=77,e[3]=42;let i=8;if(n.writeUint(e,r,i),r+=4,t.forEach((r,o)=>{const s=((t,e,r,n)=>{let i=r;const o=Object.keys(n).filter(t=>null!=t&&\"undefined\"!==t);t.writeUshort(e,i,o.length),i+=2;let s=i+12*o.length+4;for(const r of o){let o=null;\"number\"==typeof r?o=r:\"string\"==typeof r&&(o=parseInt(r,10));const a=c[o],u=pt[a];if(null==a||void 0===a||void 0===a)throw new Error(\"unknown type of tag: \"+o);let l=n[r];if(void 0===l)throw new Error(\"failed to get value for key \"+r);\"ASCII\"===a&&\"string\"==typeof l&&!1===ut(l,\"\\\\0\")&&(l+=\"\\\\0\");const f=l.length;t.writeUshort(e,i,o),i+=2,t.writeUshort(e,i,u),i+=2,t.writeUint(e,i,f),i+=4;let h=[-1,1,1,2,4,8,0,0,0,0,0,0,8][u]*f,d=i;h>4&&(t.writeUint(e,i,s),d=s),\"ASCII\"===a?t.writeASCII(e,d,l):\"SHORT\"===a?lt(f,r=>{t.writeUshort(e,d+2*r,l[r])}):\"LONG\"===a?lt(f,r=>{t.writeUint(e,d+4*r,l[r])}):\"RATIONAL\"===a?lt(f,r=>{t.writeUint(e,d+8*r,Math.round(1e4*l[r])),t.writeUint(e,d+8*r+4,1e4)}):\"DOUBLE\"===a&<(f,r=>{t.writeDouble(e,d+8*r,l[r])}),h>4&&(h+=1&h,s+=h),i+=4}return[i,s]})(n,e,i,r);i=s[1],o{lt(i,r=>{lt(n,n=>{o.push(t[n][e][r])})})})),e.ImageLength=r,delete e.height,e.ImageWidth=i,delete e.width,e.BitsPerSample||(e.BitsPerSample=lt(n,()=>8)),mt.forEach(t=>{const r=t[0];if(!e[r]){const n=t[1];e[r]=n}}),e.PhotometricInterpretation||(e.PhotometricInterpretation=3===e.BitsPerSample.length?2:1),e.SamplesPerPixel||(e.SamplesPerPixel=[n]),e.StripByteCounts||(e.StripByteCounts=[n*r*i]),e.ModelPixelScale||(e.ModelPixelScale=[360/i,180/r,0]),e.SampleFormat||(e.SampleFormat=lt(n,()=>1));const s=Object.keys(e).filter(t=>ut(t,\"GeoKey\")).sort((t,e)=>dt[t]-dt[e]);if(!e.GeoKeyDirectory){const t=[1,1,0,s.length];s.forEach(r=>{const n=Number(dt[r]);let i,o,s;t.push(n),\"SHORT\"===c[n]?(i=1,o=0,s=e[r]):\"GeogCitationGeoKey\"===r?(i=e.GeoAsciiParams.length,o=Number(dt.GeoAsciiParams),s=0):console.log(\"[geotiff.js] couldn\\'t get TIFFTagLocation for \"+r),t.push(o),t.push(i),t.push(s)}),e.GeoKeyDirectory=t}for(const t in s)s.hasOwnProperty(t)&&delete e[t];[\"Compression\",\"ExtraSamples\",\"GeographicTypeGeoKey\",\"GTModelTypeGeoKey\",\"GTRasterTypeGeoKey\",\"ImageLength\",\"ImageWidth\",\"PhotometricInterpretation\",\"PlanarConfiguration\",\"ResolutionUnit\",\"SamplesPerPixel\",\"XPosition\",\"YPosition\"].forEach(t=>{var r;e[t]&&(e[t]=(r=e[t],Array.isArray(r)?r:[r]))});const a=(t=>{const e={};for(const r in t)\"StripOffsets\"!==r&&(dt[r]||console.error(r,\"not in name2code:\",Object.keys(dt)),e[dt[r]]=t[r]);return e})(e);return((t,e,r,n)=>{if(null==r)throw new Error(\"you passed into encodeImage a width of type \"+r);if(null==e)throw new Error(\"you passed into encodeImage a width of type \"+e);const i={256:[e],257:[r],273:[1e3],278:[r],305:\"geotiff.js\"};if(n)for(const t in n)n.hasOwnProperty(t)&&(i[t]=n[t]);const o=new Uint8Array(gt([i])),s=new Uint8Array(t),a=i[277],u=new Uint8Array(1e3+e*r*a);return lt(o.length,t=>{u[t]=o[t]}),function(t,e){const{length:r}=t;for(let n=0;n{u[1e3+e]=t}),u.buffer})(o,i,r,a)}class vt{log(){}info(){}warn(){}error(){}time(){}timeEnd(){}}let wt=new vt;function xt(t=new vt){wt=t}function _t(t){switch(t){case h.BYTE:case h.ASCII:case h.SBYTE:case h.UNDEFINED:return 1;case h.SHORT:case h.SSHORT:return 2;case h.LONG:case h.SLONG:case h.FLOAT:case h.IFD:return 4;case h.RATIONAL:case h.SRATIONAL:case h.DOUBLE:case h.LONG8:case h.SLONG8:case h.IFD8:return 8;default:throw new RangeError(\"Invalid field type: \"+t)}}function St(t,e,r,n){let i=null,o=null;const s=_t(e);switch(e){case h.BYTE:case h.ASCII:case h.UNDEFINED:i=new Uint8Array(r),o=t.readUint8;break;case h.SBYTE:i=new Int8Array(r),o=t.readInt8;break;case h.SHORT:i=new Uint16Array(r),o=t.readUint16;break;case h.SSHORT:i=new Int16Array(r),o=t.readInt16;break;case h.LONG:case h.IFD:i=new Uint32Array(r),o=t.readUint32;break;case h.SLONG:i=new Int32Array(r),o=t.readInt32;break;case h.LONG8:case h.IFD8:i=new Array(r),o=t.readUint64;break;case h.SLONG8:i=new Array(r),o=t.readInt64;break;case h.RATIONAL:i=new Uint32Array(2*r),o=t.readUint32;break;case h.SRATIONAL:i=new Int32Array(2*r),o=t.readInt32;break;case h.FLOAT:i=new Float32Array(r),o=t.readFloat32;break;case h.DOUBLE:i=new Float64Array(r),o=t.readFloat64;break;default:throw new RangeError(\"Invalid field type: \"+e)}if(e!==h.RATIONAL&&e!==h.SRATIONAL)for(let e=0;et.getWidth()-e.getWidth());for(let e=0;en||o&&o>s)break}}let f=e;if(s){const[t,e]=a.getOrigin(),[r,n]=u.getResolution(a);f=[Math.round((s[0]-t)/r),Math.round((s[1]-e)/n),Math.round((s[2]-t)/r),Math.round((s[3]-e)/n)],f=[Math.min(f[0],f[2]),Math.min(f[1],f[3]),Math.max(f[0],f[2]),Math.max(f[1],f[3])]}return u.readRasters({...t,window:f})}}class Tt extends kt{constructor(t,e,r,n,i={}){super(),this.source=t,this.littleEndian=e,this.bigTiff=r,this.firstIFDOffset=n,this.cache=i.cache||!1,this.ifdRequests=[],this.ghostValues=null}async getSlice(t,e){const r=this.bigTiff?4048:1024;return new $(await this.source.fetch(t,void 0!==e?e:r),t,this.littleEndian,this.bigTiff)}async parseFileDirectoryAt(t){const e=this.bigTiff?20:12,r=this.bigTiff?8:2;let n=await this.getSlice(t);const i=this.bigTiff?n.readUint64(t):n.readUint16(t),o=i*e+(this.bigTiff?16:6);n.covers(t,o)||(n=await this.getSlice(t,o));const s={};let u=t+(this.bigTiff?8:2);for(let t=0;t{const e=await this.ifdRequests[t-1];if(0===e.nextIFDByteOffset)throw new Et(t);return this.parseFileDirectoryAt(e.nextIFDByteOffset)})(),this.ifdRequests[t]}async getImage(t=0){const e=await this.requestIFD(t);return new V(e.fileDirectory,e.geoKeyDirectory,this.dataView,this.littleEndian,this.cache,this.source)}async getImageCount(){let t=0,e=!0;for(;e;)try{await this.requestIFD(t),++t}catch(t){if(!(t instanceof Et))throw t;e=!1}return t}async getGhostValues(){const t=this.bigTiff?16:8;if(this.ghostValues)return this.ghostValues;const e=\"GDAL_STRUCTURAL_METADATA_SIZE=\",r=e.length+100;let n=await this.getSlice(t,r);if(e===St(n,h.ASCII,e.length,t)){const e=St(n,h.ASCII,r,t).split(\"\\\\n\")[0],i=Number(e.split(\"=\")[1].split(\" \")[0])+e.length;i>r&&(n=await this.getSlice(t,i));const o=St(n,h.ASCII,i,t);this.ghostValues={},o.split(\"\\\\n\").filter(t=>t.length>0).map(t=>t.split(\"=\")).forEach(([t,e])=>{this.ghostValues[t]=e})}return this.ghostValues}static async fromSource(t,e){const r=await t.fetch(0,1024),n=new K(r),i=n.getUint16(0,0);let o;if(18761===i)o=!0;else{if(19789!==i)throw new TypeError(\"Invalid byte order value.\");o=!1}const s=n.getUint16(2,o);let a;if(42===s)a=!1;else{if(43!==s)throw new TypeError(\"Invalid magic number.\");a=!0;if(8!==n.getUint16(4,o))throw new Error(\"Unsupported offset byte-size.\")}const u=a?n.getUint64(8,o):n.getUint32(4,o);return new Tt(t,o,a,u,e)}close(){return\"function\"==typeof this.source.close&&this.source.close()}}e.default=Tt;class Ct extends kt{constructor(t,e){super(),this.mainFile=t,this.overviewFiles=e,this.imageFiles=[t].concat(e),this.fileDirectoriesPerFile=null,this.fileDirectoriesPerFileParsing=null,this.imageCount=null}async parseFileDirectoriesPerFile(){const t=[this.mainFile.parseFileDirectoryAt(this.mainFile.firstIFDOffset)].concat(this.overviewFiles.map(t=>t.parseFileDirectoryAt(t.firstIFDOffset)));return this.fileDirectoriesPerFile=await Promise.all(t),this.fileDirectoriesPerFile}async getImage(t=0){await this.getImageCount(),await this.parseFileDirectoriesPerFile();let e=0,r=0;for(let n=0;nt.getImageCount()));return this.imageCounts=await Promise.all(t),this.imageCount=this.imageCounts.reduce((t,e)=>t+e,0),this.imageCount}}async function Ot(t,e={}){return Tt.fromSource(ot(t,e))}async function It(t){return Tt.fromSource(function(t){return{fetch:async(e,r)=>t.slice(e,e+r)}}(t))}async function Pt(t){return Tt.fromSource(st(t))}async function Rt(t){return Tt.fromSource((e=t,{fetch:async(t,r)=>new Promise((n,i)=>{const o=e.slice(t,t+r),s=new FileReader;s.onload=t=>n(t.target.result),s.onerror=i,s.readAsArrayBuffer(o)})}));var e}async function jt(t,e=[],r={}){const n=await Tt.fromSource(ot(t,r)),i=await Promise.all(e.map(t=>Tt.fromSource(ot(t,r))));return new Ct(n,i)}async function Mt(t,e){return bt(t,e)}},function(t,e,r){\"use strict\";r.d(e,\"a\",(function(){return i}));var n=r(19);Object(n.b)().blob;const i=Object(n.b)().default},,,function(t,e,r){\"use strict\";var n=r(26),i=r(102);var o=function(t){\"function\"==typeof t?t():t&&\"function\"==typeof t.unsubscribe&&t.unsubscribe()};e.a=function(t){const e=new i.a;let r,s=0;return new n.a(n=>{r||(r=t.subscribe(e));const i=e.subscribe(n);return s++,()=>{s--,i.unsubscribe(),0===s&&(o(r),r=void 0)}})}}]);',null)}},function(t,e,r){\"use strict\";var n=window.URL||window.webkitURL;t.exports=function(t,e){try{try{var r;try{(r=new(window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder)).append(t),r=r.getBlob()}catch(e){r=new Blob([t])}return new Worker(n.createObjectURL(r))}catch(e){return new Worker(\"data:application/javascript,\"+encodeURIComponent(t))}}catch(t){if(!e)throw Error(\"Inline worker is not supported\");return new Worker(e)}}},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var n=function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return function(t,e){var r=[],n=!0,i=!1,o=void 0;try{for(var s,a=t[Symbol.iterator]();!(n=(s=a.next()).done)&&(r.push(s.value),!e||r.length!==e);n=!0);}catch(t){i=!0,o=t}finally{try{!n&&a.return&&a.return()}finally{if(i)throw o}}return r}(t,e);throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")},i=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t};e.default=function(t,e){return new Promise((function(r,o){try{e&&console.log(\"starting parseData with\",t),e&&console.log(\"\\tGeoTIFF:\",\"undefined\"==typeof GeoTIFF?\"undefined\":i(GeoTIFF));var u={},c=void 0,h=void 0;if(\"object\"===t.rasterType)u.values=t.data,u.height=c=t.metadata.height||u.values[0].length,u.width=h=t.metadata.width||u.values[0][0].length,u.pixelHeight=t.metadata.pixelHeight,u.pixelWidth=t.metadata.pixelWidth,u.projection=t.metadata.projection,u.xmin=t.metadata.xmin,u.ymax=t.metadata.ymax,u.noDataValue=t.metadata.noDataValue,u.numberOfRasters=u.values.length,u.xmax=u.xmin+u.width*u.pixelWidth,u.ymin=u.ymax-u.height*u.pixelHeight,u._data=null,r(f(u));else if(\"geotiff\"===t.rasterType){u._data=t.data;var d=s.fromArrayBuffer;\"url\"===t.sourceType?d=s.fromUrl:\"Blob\"===t.sourceType&&(d=s.fromBlob),e&&console.log(\"data.rasterType is geotiff\"),r(d(t.data).then((function(r){return e&&console.log(\"geotiff:\",r),r.getImage().then((function(r){try{e&&console.log(\"image:\",r);var i=r.fileDirectory,s=r.getGeoKeys()||{},d=s.GeographicTypeGeoKey,p=s.ProjectedCSTypeGeoKey;u.projection=p||d||t.metadata.projection,e&&console.log(\"projection:\",u.projection),u.height=c=r.getHeight(),e&&console.log(\"result.height:\",u.height),u.width=h=r.getWidth(),e&&console.log(\"result.width:\",u.width);var y=r.getResolution(),g=n(y,2),m=g[0],b=g[1];u.pixelHeight=Math.abs(b),u.pixelWidth=Math.abs(m);var v=r.getOrigin(),w=n(v,2),x=w[0],_=w[1];return u.xmin=x,u.xmax=u.xmin+h*u.pixelWidth,u.ymax=_,u.ymin=u.ymax-c*u.pixelHeight,u.noDataValue=i.GDAL_NODATA?parseFloat(i.GDAL_NODATA):null,u.numberOfRasters=i.SamplesPerPixel,i.ColorMap&&(u.palette=(0,a.getPalette)(r)),\"url\"!==t.sourceType?r.readRasters().then((function(t){return u.values=t.map((function(t){return(0,l.unflatten)(t,{height:c,width:h})})),f(u)})):u}catch(t){o(t),console.error(\"[georaster] error parsing georaster:\",t)}}))})))}}catch(t){o(t),console.error(\"[georaster] error parsing georaster:\",t)}}))};var o,s=r(100),a=r(155),u=r(156),c=(o=u)&&o.__esModule?o:{default:o},l=r(99);function f(t){var e=(0,c.default)(t.values,{height:t.height,layout:\"[band][row][column]\",noData:t.noDataValue,precise:!1,stats:[\"max\",\"min\",\"range\"],width:t.width});return t.maxs=e.bands.map((function(t){return t.max})),t.mins=e.bands.map((function(t){return t.min})),t.ranges=e.bands.map((function(t){return t.range})),t}},function(t,e,r){(function(e){var n=r(42).Transform,i=r(10);function o(t){n.call(this,t),this._destroyed=!1}function s(t,e,r){r(null,t)}function a(t){return function(e,r,n){return\"function\"==typeof e&&(n=r,r=e,e={}),\"function\"!=typeof r&&(r=s),\"function\"!=typeof n&&(n=null),t(e,r,n)}}i(o,n),o.prototype.destroy=function(t){if(!this._destroyed){this._destroyed=!0;var r=this;e.nextTick((function(){t&&r.emit(\"error\",t),r.emit(\"close\")}))}},t.exports=a((function(t,e,r){var n=new o(t);return n._transform=e,r&&(n._flush=r),n})),t.exports.ctor=a((function(t,e,r){function n(e){if(!(this instanceof n))return new n(e);this.options=Object.assign({},t,e),o.call(this,this.options)}return i(n,o),n.prototype._transform=e,r&&(n.prototype._flush=r),n})),t.exports.obj=a((function(t,e,r){var n=new o(Object.assign({objectMode:!0,highWaterMark:16},t));return n._transform=e,r&&(n._flush=r),n}))}).call(this,r(8))},function(t,e){},function(t,e,r){\"use strict\";var n=r(43).Buffer,i=r(117);t.exports=function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this.head=null,this.tail=null,this.length=0}return t.prototype.push=function(t){var e={data:t,next:null};this.length>0?this.tail.next=e:this.head=e,this.tail=e,++this.length},t.prototype.unshift=function(t){var e={data:t,next:this.head};0===this.length&&(this.tail=e),this.head=e,++this.length},t.prototype.shift=function(){if(0!==this.length){var t=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,t}},t.prototype.clear=function(){this.head=this.tail=null,this.length=0},t.prototype.join=function(t){if(0===this.length)return\"\";for(var e=this.head,r=\"\"+e.data;e=e.next;)r+=t+e.data;return r},t.prototype.concat=function(t){if(0===this.length)return n.alloc(0);for(var e,r,i,o=n.allocUnsafe(t>>>0),s=this.head,a=0;s;)e=s.data,r=o,i=a,e.copy(r,i),a+=s.data.length,s=s.next;return o},t}(),i&&i.inspect&&i.inspect.custom&&(t.exports.prototype[i.inspect.custom]=function(){var t=i.inspect({length:this.length});return this.constructor.name+\" \"+t})},function(t,e){},function(t,e,r){(function(t){var n=void 0!==t&&t||\"undefined\"!=typeof self&&self||window,i=Function.prototype.apply;function o(t,e){this._id=t,this._clearFn=e}e.setTimeout=function(){return new o(i.call(setTimeout,n,arguments),clearTimeout)},e.setInterval=function(){return new o(i.call(setInterval,n,arguments),clearInterval)},e.clearTimeout=e.clearInterval=function(t){t&&t.close()},o.prototype.unref=o.prototype.ref=function(){},o.prototype.close=function(){this._clearFn.call(n,this._id)},e.enroll=function(t,e){clearTimeout(t._idleTimeoutId),t._idleTimeout=e},e.unenroll=function(t){clearTimeout(t._idleTimeoutId),t._idleTimeout=-1},e._unrefActive=e.active=function(t){clearTimeout(t._idleTimeoutId);var e=t._idleTimeout;e>=0&&(t._idleTimeoutId=setTimeout((function(){t._onTimeout&&t._onTimeout()}),e))},r(119),e.setImmediate=\"undefined\"!=typeof self&&self.setImmediate||void 0!==t&&t.setImmediate||this&&this.setImmediate,e.clearImmediate=\"undefined\"!=typeof self&&self.clearImmediate||void 0!==t&&t.clearImmediate||this&&this.clearImmediate}).call(this,r(3))},function(t,e,r){(function(t,e){!function(t,r){\"use strict\";if(!t.setImmediate){var n,i,o,s,a,u=1,c={},l=!1,f=t.document,h=Object.getPrototypeOf&&Object.getPrototypeOf(t);h=h&&h.setTimeout?h:t,\"[object process]\"==={}.toString.call(t.process)?n=function(t){e.nextTick((function(){p(t)}))}:!function(){if(t.postMessage&&!t.importScripts){var e=!0,r=t.onmessage;return t.onmessage=function(){e=!1},t.postMessage(\"\",\"*\"),t.onmessage=r,e}}()?t.MessageChannel?((o=new MessageChannel).port1.onmessage=function(t){p(t.data)},n=function(t){o.port2.postMessage(t)}):f&&\"onreadystatechange\"in f.createElement(\"script\")?(i=f.documentElement,n=function(t){var e=f.createElement(\"script\");e.onreadystatechange=function(){p(t),e.onreadystatechange=null,i.removeChild(e),e=null},i.appendChild(e)}):n=function(t){setTimeout(p,0,t)}:(s=\"setImmediate$\"+Math.random()+\"$\",a=function(e){e.source===t&&\"string\"==typeof e.data&&0===e.data.indexOf(s)&&p(+e.data.slice(s.length))},t.addEventListener?t.addEventListener(\"message\",a,!1):t.attachEvent(\"onmessage\",a),n=function(e){t.postMessage(s+e,\"*\")}),h.setImmediate=function(t){\"function\"!=typeof t&&(t=new Function(\"\"+t));for(var e=new Array(arguments.length-1),r=0;r>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24)}function c(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new n.Buf16(320),this.work=new n.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function l(t){var e;return t&&t.state?(e=t.state,t.total_in=t.total_out=e.total=0,t.msg=\"\",e.wrap&&(t.adler=1&e.wrap),e.mode=1,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new n.Buf32(852),e.distcode=e.distdyn=new n.Buf32(592),e.sane=1,e.back=-1,0):-2}function f(t){var e;return t&&t.state?((e=t.state).wsize=0,e.whave=0,e.wnext=0,l(t)):-2}function h(t,e){var r,n;return t&&t.state?(n=t.state,e<0?(r=0,e=-e):(r=1+(e>>4),e<48&&(e&=15)),e&&(e<8||e>15)?-2:(null!==n.window&&n.wbits!==e&&(n.window=null),n.wrap=r,n.wbits=e,f(t))):-2}function d(t,e){var r,n;return t?(n=new c,t.state=n,n.window=null,0!==(r=h(t,e))&&(t.state=null),r):-2}var p,y,g=!0;function m(t){if(g){var e;for(p=new n.Buf32(512),y=new n.Buf32(32),e=0;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(a(1,t.lens,0,288,p,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;a(2,t.lens,0,32,y,0,t.work,{bits:5}),g=!1}t.lencode=p,t.lenbits=9,t.distcode=y,t.distbits=5}function b(t,e,r,i){var o,s=t.state;return null===s.window&&(s.wsize=1<=s.wsize?(n.arraySet(s.window,e,r-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):((o=s.wsize-s.wnext)>i&&(o=i),n.arraySet(s.window,e,r-i,o,s.wnext),(i-=o)?(n.arraySet(s.window,e,r-i,i,0),s.wnext=i,s.whave=s.wsize):(s.wnext+=o,s.wnext===s.wsize&&(s.wnext=0),s.whave>>8&255,r.check=o(r.check,L,2,0),y=0,g=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&y)<<8)+(y>>8))%31){t.msg=\"incorrect header check\",r.mode=30;break}if(8!=(15&y)){t.msg=\"unknown compression method\",r.mode=30;break}if(g-=4,P=8+(15&(y>>>=4)),0===r.wbits)r.wbits=P;else if(P>r.wbits){t.msg=\"invalid window size\",r.mode=30;break}r.dmax=1<>8&1),512&r.flags&&(L[0]=255&y,L[1]=y>>>8&255,r.check=o(r.check,L,2,0)),y=0,g=0,r.mode=3;case 3:for(;g<32;){if(0===d)break t;d--,y+=c[f++]<>>8&255,L[2]=y>>>16&255,L[3]=y>>>24&255,r.check=o(r.check,L,4,0)),y=0,g=0,r.mode=4;case 4:for(;g<16;){if(0===d)break t;d--,y+=c[f++]<>8),512&r.flags&&(L[0]=255&y,L[1]=y>>>8&255,r.check=o(r.check,L,2,0)),y=0,g=0,r.mode=5;case 5:if(1024&r.flags){for(;g<16;){if(0===d)break t;d--,y+=c[f++]<>>8&255,r.check=o(r.check,L,2,0)),y=0,g=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&((x=r.length)>d&&(x=d),x&&(r.head&&(P=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),n.arraySet(r.head.extra,c,f,x,P)),512&r.flags&&(r.check=o(r.check,c,x,f)),d-=x,f+=x,r.length-=x),r.length))break t;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===d)break t;x=0;do{P=c[f+x++],r.head&&P&&r.length<65536&&(r.head.name+=String.fromCharCode(P))}while(P&&x>9&1,r.head.done=!0),t.adler=r.check=0,r.mode=12;break;case 10:for(;g<32;){if(0===d)break t;d--,y+=c[f++]<>>=7&g,g-=7&g,r.mode=27;break}for(;g<3;){if(0===d)break t;d--,y+=c[f++]<>>=1)){case 0:r.mode=14;break;case 1:if(m(r),r.mode=20,6===e){y>>>=2,g-=2;break t}break;case 2:r.mode=17;break;case 3:t.msg=\"invalid block type\",r.mode=30}y>>>=2,g-=2;break;case 14:for(y>>>=7&g,g-=7&g;g<32;){if(0===d)break t;d--,y+=c[f++]<>>16^65535)){t.msg=\"invalid stored block lengths\",r.mode=30;break}if(r.length=65535&y,y=0,g=0,r.mode=15,6===e)break t;case 15:r.mode=16;case 16:if(x=r.length){if(x>d&&(x=d),x>p&&(x=p),0===x)break t;n.arraySet(l,c,f,x,h),d-=x,f+=x,p-=x,h+=x,r.length-=x;break}r.mode=12;break;case 17:for(;g<14;){if(0===d)break t;d--,y+=c[f++]<>>=5,g-=5,r.ndist=1+(31&y),y>>>=5,g-=5,r.ncode=4+(15&y),y>>>=4,g-=4,r.nlen>286||r.ndist>30){t.msg=\"too many length or distance symbols\",r.mode=30;break}r.have=0,r.mode=18;case 18:for(;r.have>>=3,g-=3}for(;r.have<19;)r.lens[F[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,R={bits:r.lenbits},I=a(0,r.lens,0,19,r.lencode,0,r.work,R),r.lenbits=R.bits,I){t.msg=\"invalid code lengths set\",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have>>16&255,k=65535&M,!((A=M>>>24)<=g);){if(0===d)break t;d--,y+=c[f++]<>>=A,g-=A,r.lens[r.have++]=k;else{if(16===k){for(j=A+2;g>>=A,g-=A,0===r.have){t.msg=\"invalid bit length repeat\",r.mode=30;break}P=r.lens[r.have-1],x=3+(3&y),y>>>=2,g-=2}else if(17===k){for(j=A+3;g>>=A)),y>>>=3,g-=3}else{for(j=A+7;g>>=A)),y>>>=7,g-=7}if(r.have+x>r.nlen+r.ndist){t.msg=\"invalid bit length repeat\",r.mode=30;break}for(;x--;)r.lens[r.have++]=P}}if(30===r.mode)break;if(0===r.lens[256]){t.msg=\"invalid code -- missing end-of-block\",r.mode=30;break}if(r.lenbits=9,R={bits:r.lenbits},I=a(1,r.lens,0,r.nlen,r.lencode,0,r.work,R),r.lenbits=R.bits,I){t.msg=\"invalid literal/lengths set\",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,R={bits:r.distbits},I=a(2,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,R),r.distbits=R.bits,I){t.msg=\"invalid distances set\",r.mode=30;break}if(r.mode=20,6===e)break t;case 20:r.mode=21;case 21:if(d>=6&&p>=258){t.next_out=h,t.avail_out=p,t.next_in=f,t.avail_in=d,r.hold=y,r.bits=g,s(t,w),h=t.next_out,l=t.output,p=t.avail_out,f=t.next_in,c=t.input,d=t.avail_in,y=r.hold,g=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;E=(M=r.lencode[y&(1<>>16&255,k=65535&M,!((A=M>>>24)<=g);){if(0===d)break t;d--,y+=c[f++]<>T)])>>>16&255,k=65535&M,!(T+(A=M>>>24)<=g);){if(0===d)break t;d--,y+=c[f++]<>>=T,g-=T,r.back+=T}if(y>>>=A,g-=A,r.back+=A,r.length=k,0===E){r.mode=26;break}if(32&E){r.back=-1,r.mode=12;break}if(64&E){t.msg=\"invalid literal/length code\",r.mode=30;break}r.extra=15&E,r.mode=22;case 22:if(r.extra){for(j=r.extra;g>>=r.extra,g-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;E=(M=r.distcode[y&(1<>>16&255,k=65535&M,!((A=M>>>24)<=g);){if(0===d)break t;d--,y+=c[f++]<>T)])>>>16&255,k=65535&M,!(T+(A=M>>>24)<=g);){if(0===d)break t;d--,y+=c[f++]<>>=T,g-=T,r.back+=T}if(y>>>=A,g-=A,r.back+=A,64&E){t.msg=\"invalid distance code\",r.mode=30;break}r.offset=k,r.extra=15&E,r.mode=24;case 24:if(r.extra){for(j=r.extra;g>>=r.extra,g-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){t.msg=\"invalid distance too far back\",r.mode=30;break}r.mode=25;case 25:if(0===p)break t;if(x=w-p,r.offset>x){if((x=r.offset-x)>r.whave&&r.sane){t.msg=\"invalid distance too far back\",r.mode=30;break}x>r.wnext?(x-=r.wnext,_=r.wsize-x):_=r.wnext-x,x>r.length&&(x=r.length),S=r.window}else S=l,_=h-r.offset,x=r.length;x>p&&(x=p),p-=x,r.length-=x;do{l[h++]=S[_++]}while(--x);0===r.length&&(r.mode=21);break;case 26:if(0===p)break t;l[h++]=r.length,p--,r.mode=21;break;case 27:if(r.wrap){for(;g<32;){if(0===d)break t;d--,y|=c[f++]<>>16&65535|0,s=0;0!==r;){r-=s=r>2e3?2e3:r;do{o=o+(i=i+e[n++]|0)|0}while(--s);i%=65521,o%=65521}return i|o<<16|0}},function(t,e,r){\"use strict\";var n=function(){for(var t,e=[],r=0;r<256;r++){t=r;for(var n=0;n<8;n++)t=1&t?3988292384^t>>>1:t>>>1;e[r]=t}return e}();t.exports=function(t,e,r,i){var o=n,s=i+r;t^=-1;for(var a=i;a>>8^o[255&(t^e[a])];return-1^t}},function(t,e,r){\"use strict\";t.exports=function(t,e){var r,n,i,o,s,a,u,c,l,f,h,d,p,y,g,m,b,v,w,x,_,S,A,E,k;r=t.state,n=t.next_in,E=t.input,i=n+(t.avail_in-5),o=t.next_out,k=t.output,s=o-(e-t.avail_out),a=o+(t.avail_out-257),u=r.dmax,c=r.wsize,l=r.whave,f=r.wnext,h=r.window,d=r.hold,p=r.bits,y=r.lencode,g=r.distcode,m=(1<>>=w=v>>>24,p-=w,0===(w=v>>>16&255))k[o++]=65535&v;else{if(!(16&w)){if(0==(64&w)){v=y[(65535&v)+(d&(1<>>=w,p-=w),p<15&&(d+=E[n++]<>>=w=v>>>24,p-=w,!(16&(w=v>>>16&255))){if(0==(64&w)){v=g[(65535&v)+(d&(1<u){t.msg=\"invalid distance too far back\",r.mode=30;break t}if(d>>>=w,p-=w,_>(w=o-s)){if((w=_-w)>l&&r.sane){t.msg=\"invalid distance too far back\",r.mode=30;break t}if(S=0,A=h,0===f){if(S+=c-w,w2;)k[o++]=A[S++],k[o++]=A[S++],k[o++]=A[S++],x-=3;x&&(k[o++]=A[S++],x>1&&(k[o++]=A[S++]))}else{S=o-_;do{k[o++]=k[S++],k[o++]=k[S++],k[o++]=k[S++],x-=3}while(x>2);x&&(k[o++]=k[S++],x>1&&(k[o++]=k[S++]))}break}}break}}while(n>3,d&=(1<<(p-=x<<3))-1,t.next_in=n,t.next_out=o,t.avail_in=n=1&&0===L[k];k--);if(T>k&&(T=k),0===k)return c[l++]=20971520,c[l++]=20971520,h.bits=1,0;for(E=1;E0&&(0===t||1!==k))return-1;for(F[1]=0,S=1;S<15;S++)F[S+1]=F[S]+L[S];for(A=0;A852||2===t&&I>592)return 1;for(;;){v=S-C,f[A]b?(w=N[D+f[A]],x=j[M+f[A]]):(w=96,x=0),d=1<>C)+(p-=d)]=v<<24|w<<16|x|0}while(0!==p);for(d=1<>=1;if(0!==d?(R&=d-1,R+=d):R=0,A++,0==--L[S]){if(S===k)break;S=e[r+f[A]]}if(S>T&&(R&g)!==y){for(0===C&&(C=T),m+=E,P=1<<(O=S-C);O+C852||2===t&&I>592)return 1;c[y=R&g]=T<<24|O<<16|m-l|0}}return 0!==R&&(c[m+R]=S-C<<24|64<<16|0),h.bits=T,0}},function(t,e,r){\"use strict\";var n=r(29),i=!0,o=!0;try{String.fromCharCode.apply(null,[0])}catch(t){i=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(t){o=!1}for(var s=new n.Buf8(256),a=0;a<256;a++)s[a]=a>=252?6:a>=248?5:a>=240?4:a>=224?3:a>=192?2:1;function u(t,e){if(e<65534&&(t.subarray&&o||!t.subarray&&i))return String.fromCharCode.apply(null,n.shrinkBuf(t,e));for(var r=\"\",s=0;s>>6,e[s++]=128|63&r):r<65536?(e[s++]=224|r>>>12,e[s++]=128|r>>>6&63,e[s++]=128|63&r):(e[s++]=240|r>>>18,e[s++]=128|r>>>12&63,e[s++]=128|r>>>6&63,e[s++]=128|63&r);return e},e.buf2binstring=function(t){return u(t,t.length)},e.binstring2buf=function(t){for(var e=new n.Buf8(t.length),r=0,i=e.length;r4)c[n++]=65533,r+=o-1;else{for(i&=2===o?31:3===o?15:7;o>1&&r1?c[n++]=65533:i<65536?c[n++]=i:(i-=65536,c[n++]=55296|i>>10&1023,c[n++]=56320|1023&i)}return u(c,n)},e.utf8border=function(t,e){var r;for((e=e||t.length)>t.length&&(e=t.length),r=e-1;r>=0&&128==(192&t[r]);)r--;return r<0||0===r?e:r+s[t[r]]>e?r:e}},function(t,e,r){\"use strict\";t.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},function(t,e,r){\"use strict\";t.exports={2:\"need dictionary\",1:\"stream end\",0:\"\",\"-1\":\"file error\",\"-2\":\"stream error\",\"-3\":\"data error\",\"-4\":\"insufficient memory\",\"-5\":\"buffer error\",\"-6\":\"incompatible version\"}},function(t,e,r){\"use strict\";t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg=\"\",this.state=null,this.data_type=2,this.adler=0}},function(t,e,r){\"use strict\";t.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name=\"\",this.comment=\"\",this.hcrc=0,this.done=!1}},function(t,e,r){t.exports=r.p+\"0.georaster.browser.bundle.min.worker.js\"},function(t,e,r){t.exports=function(t){function e(t){let r,i,o,s=null;function a(...t){if(!a.enabled)return;const n=a,i=Number(new Date),o=i-(r||i);n.diff=o,n.prev=r,n.curr=i,r=i,t[0]=e.coerce(t[0]),\"string\"!=typeof t[0]&&t.unshift(\"%O\");let s=0;t[0]=t[0].replace(/%([a-zA-Z%])/g,(r,i)=>{if(\"%%\"===r)return\"%\";s++;const o=e.formatters[i];if(\"function\"==typeof o){const e=t[s];r=o.call(n,e),t.splice(s,1),s--}return r}),e.formatArgs.call(n,t);(n.log||e.log).apply(n,t)}return a.namespace=t,a.useColors=e.useColors(),a.color=e.selectColor(t),a.extend=n,a.destroy=e.destroy,Object.defineProperty(a,\"enabled\",{enumerable:!0,configurable:!1,get:()=>null!==s?s:(i!==e.namespaces&&(i=e.namespaces,o=e.enabled(t)),o),set:t=>{s=t}}),\"function\"==typeof e.init&&e.init(a),a}function n(t,r){const n=e(this.namespace+(void 0===r?\":\":r)+t);return n.log=this.log,n}function i(t){return t.toString().substring(2,t.toString().length-2).replace(/\\.\\*\\?$/,\"*\")}return e.debug=e,e.default=e,e.coerce=function(t){if(t instanceof Error)return t.stack||t.message;return t},e.disable=function(){const t=[...e.names.map(i),...e.skips.map(i).map(t=>\"-\"+t)].join(\",\");return e.enable(\"\"),t},e.enable=function(t){let r;e.save(t),e.namespaces=t,e.names=[],e.skips=[];const n=(\"string\"==typeof t?t:\"\").split(/[\\s,]+/),i=n.length;for(r=0;r{e[r]=t[r]}),e.names=[],e.skips=[],e.formatters={},e.selectColor=function(t){let r=0;for(let e=0;e=1.5*r;return Math.round(t/r)+\" \"+n+(i?\"s\":\"\")}t.exports=function(t,e){e=e||{};var a=typeof t;if(\"string\"===a&&t.length>0)return function(t){if((t=String(t)).length>100)return;var e=/^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t);if(!e)return;var s=parseFloat(e[1]);switch((e[2]||\"ms\").toLowerCase()){case\"years\":case\"year\":case\"yrs\":case\"yr\":case\"y\":return 315576e5*s;case\"weeks\":case\"week\":case\"w\":return 6048e5*s;case\"days\":case\"day\":case\"d\":return s*o;case\"hours\":case\"hour\":case\"hrs\":case\"hr\":case\"h\":return s*i;case\"minutes\":case\"minute\":case\"mins\":case\"min\":case\"m\":return s*n;case\"seconds\":case\"second\":case\"secs\":case\"sec\":case\"s\":return s*r;case\"milliseconds\":case\"millisecond\":case\"msecs\":case\"msec\":case\"ms\":return s;default:return}}(t);if(\"number\"===a&&isFinite(t))return e.long?function(t){var e=Math.abs(t);if(e>=o)return s(t,e,o,\"day\");if(e>=i)return s(t,e,i,\"hour\");if(e>=n)return s(t,e,n,\"minute\");if(e>=r)return s(t,e,r,\"second\");return t+\" ms\"}(t):function(t){var e=Math.abs(t);if(e>=o)return Math.round(t/o)+\"d\";if(e>=i)return Math.round(t/i)+\"h\";if(e>=n)return Math.round(t/n)+\"m\";if(e>=r)return Math.round(t/r)+\"s\";return t+\"ms\"}(t);throw new Error(\"val is not a non-empty string or a valid number. val=\"+JSON.stringify(t))}},function(t,e,r){(function(e,n,i){var o=r(69),s=r(10),a=r(70),u=r(42),c=r(137),l=a.IncomingMessage,f=a.readyStates;var h=t.exports=function(t){var r,n=this;u.Writable.call(n),n._opts=t,n._body=[],n._headers={},t.auth&&n.setHeader(\"Authorization\",\"Basic \"+new e(t.auth).toString(\"base64\")),Object.keys(t.headers).forEach((function(e){n.setHeader(e,t.headers[e])}));var i=!0;if(\"disable-fetch\"===t.mode||\"requestTimeout\"in t&&!o.abortController)i=!1,r=!0;else if(\"prefer-streaming\"===t.mode)r=!1;else if(\"allow-wrong-content-type\"===t.mode)r=!o.overrideMimeType;else{if(t.mode&&\"default\"!==t.mode&&\"prefer-fast\"!==t.mode)throw new Error(\"Invalid value for opts.mode\");r=!0}n._mode=function(t,e){return o.fetch&&e?\"fetch\":o.mozchunkedarraybuffer?\"moz-chunked-arraybuffer\":o.msstream?\"ms-stream\":o.arraybuffer&&t?\"arraybuffer\":o.vbArray&&t?\"text:vbarray\":\"text\"}(r,i),n._fetchTimer=null,n.on(\"finish\",(function(){n._onFinish()}))};s(h,u.Writable),h.prototype.setHeader=function(t,e){var r=t.toLowerCase();-1===d.indexOf(r)&&(this._headers[r]={name:t,value:e})},h.prototype.getHeader=function(t){var e=this._headers[t.toLowerCase()];return e?e.value:null},h.prototype.removeHeader=function(t){delete this._headers[t.toLowerCase()]},h.prototype._onFinish=function(){var t=this;if(!t._destroyed){var r=t._opts,s=t._headers,a=null;\"GET\"!==r.method&&\"HEAD\"!==r.method&&(a=o.arraybuffer?c(e.concat(t._body)):o.blobConstructor?new n.Blob(t._body.map((function(t){return c(t)})),{type:(s[\"content-type\"]||{}).value||\"\"}):e.concat(t._body).toString());var u=[];if(Object.keys(s).forEach((function(t){var e=s[t].name,r=s[t].value;Array.isArray(r)?r.forEach((function(t){u.push([e,t])})):u.push([e,r])})),\"fetch\"===t._mode){var l=null;if(o.abortController){var h=new AbortController;l=h.signal,t._fetchAbortController=h,\"requestTimeout\"in r&&0!==r.requestTimeout&&(t._fetchTimer=n.setTimeout((function(){t.emit(\"requestTimeout\"),t._fetchAbortController&&t._fetchAbortController.abort()}),r.requestTimeout))}n.fetch(t._opts.url,{method:t._opts.method,headers:u,body:a||void 0,mode:\"cors\",credentials:r.withCredentials?\"include\":\"same-origin\",signal:l}).then((function(e){t._fetchResponse=e,t._connect()}),(function(e){n.clearTimeout(t._fetchTimer),t._destroyed||t.emit(\"error\",e)}))}else{var d=t._xhr=new n.XMLHttpRequest;try{d.open(t._opts.method,t._opts.url,!0)}catch(e){return void i.nextTick((function(){t.emit(\"error\",e)}))}\"responseType\"in d&&(d.responseType=t._mode.split(\":\")[0]),\"withCredentials\"in d&&(d.withCredentials=!!r.withCredentials),\"text\"===t._mode&&\"overrideMimeType\"in d&&d.overrideMimeType(\"text/plain; charset=x-user-defined\"),\"requestTimeout\"in r&&(d.timeout=r.requestTimeout,d.ontimeout=function(){t.emit(\"requestTimeout\")}),u.forEach((function(t){d.setRequestHeader(t[0],t[1])})),t._response=null,d.onreadystatechange=function(){switch(d.readyState){case f.LOADING:case f.DONE:t._onXHRProgress()}},\"moz-chunked-arraybuffer\"===t._mode&&(d.onprogress=function(){t._onXHRProgress()}),d.onerror=function(){t._destroyed||t.emit(\"error\",new Error(\"XHR error\"))};try{d.send(a)}catch(e){return void i.nextTick((function(){t.emit(\"error\",e)}))}}}},h.prototype._onXHRProgress=function(){(function(t){try{var e=t.status;return null!==e&&0!==e}catch(t){return!1}})(this._xhr)&&!this._destroyed&&(this._response||this._connect(),this._response._onXHRProgress())},h.prototype._connect=function(){var t=this;t._destroyed||(t._response=new l(t._xhr,t._fetchResponse,t._mode,t._fetchTimer),t._response.on(\"error\",(function(e){t.emit(\"error\",e)})),t.emit(\"response\",t._response))},h.prototype._write=function(t,e,r){this._body.push(t),r()},h.prototype.abort=h.prototype.destroy=function(){this._destroyed=!0,n.clearTimeout(this._fetchTimer),this._response&&(this._response._destroyed=!0),this._xhr?this._xhr.abort():this._fetchAbortController&&this._fetchAbortController.abort()},h.prototype.end=function(t,e,r){\"function\"==typeof t&&(r=t,t=void 0),u.Writable.prototype.end.call(this,t,e,r)},h.prototype.flushHeaders=function(){},h.prototype.setTimeout=function(){},h.prototype.setNoDelay=function(){},h.prototype.setSocketKeepAlive=function(){};var d=[\"accept-charset\",\"accept-encoding\",\"access-control-request-headers\",\"access-control-request-method\",\"connection\",\"content-length\",\"cookie\",\"cookie2\",\"date\",\"dnt\",\"expect\",\"host\",\"keep-alive\",\"origin\",\"referer\",\"te\",\"trailer\",\"transfer-encoding\",\"upgrade\",\"via\"]}).call(this,r(7).Buffer,r(3),r(8))},function(t,e,r){var n=r(7).Buffer;t.exports=function(t){if(t instanceof Uint8Array){if(0===t.byteOffset&&t.byteLength===t.buffer.byteLength)return t.buffer;if(\"function\"==typeof t.buffer.slice)return t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}if(n.isBuffer(t)){for(var e=new Uint8Array(t.length),r=t.length,i=0;i= 0x80 (not a basic code point)\",\"invalid-input\":\"Invalid input\"},d=Math.floor,p=String.fromCharCode;function y(t){throw new RangeError(h[t])}function g(t,e){for(var r=t.length,n=[];r--;)n[r]=e(t[r]);return n}function m(t,e){var r=t.split(\"@\"),n=\"\";return r.length>1&&(n=r[0]+\"@\",t=r[1]),n+g((t=t.replace(f,\".\")).split(\".\"),e).join(\".\")}function b(t){for(var e,r,n=[],i=0,o=t.length;i=55296&&e<=56319&&i65535&&(e+=p((t-=65536)>>>10&1023|55296),t=56320|1023&t),e+=p(t)})).join(\"\")}function w(t,e){return t+22+75*(t<26)-((0!=e)<<5)}function x(t,e,r){var n=0;for(t=r?d(t/700):t>>1,t+=d(t/e);t>455;n+=36)t=d(t/35);return d(n+36*t/(t+38))}function _(t){var e,r,n,i,o,s,a,c,l,f,h,p=[],g=t.length,m=0,b=128,w=72;for((r=t.lastIndexOf(\"-\"))<0&&(r=0),n=0;n=128&&y(\"not-basic\"),p.push(t.charCodeAt(n));for(i=r>0?r+1:0;i=g&&y(\"invalid-input\"),((c=(h=t.charCodeAt(i++))-48<10?h-22:h-65<26?h-65:h-97<26?h-97:36)>=36||c>d((u-m)/s))&&y(\"overflow\"),m+=c*s,!(c<(l=a<=w?1:a>=w+26?26:a-w));a+=36)s>d(u/(f=36-l))&&y(\"overflow\"),s*=f;w=x(m-o,e=p.length+1,0==o),d(m/e)>u-b&&y(\"overflow\"),b+=d(m/e),m%=e,p.splice(m++,0,b)}return v(p)}function S(t){var e,r,n,i,o,s,a,c,l,f,h,g,m,v,_,S=[];for(g=(t=b(t)).length,e=128,r=0,o=72,s=0;s=e&&hd((u-r)/(m=n+1))&&y(\"overflow\"),r+=(a-e)*m,e=a,s=0;su&&y(\"overflow\"),h==e){for(c=r,l=36;!(c<(f=l<=o?1:l>=o+26?26:l-o));l+=36)_=c-f,v=36-f,S.push(p(w(f+_%v,0))),c=d(_/v);S.push(p(w(c,0))),o=x(r,m,n==i),r=0,++n}++r,++e}return S.join(\"\")}a={version:\"1.4.1\",ucs2:{decode:b,encode:v},decode:_,encode:S,toASCII:function(t){return m(t,(function(t){return l.test(t)?\"xn--\"+S(t):t}))},toUnicode:function(t){return m(t,(function(t){return c.test(t)?_(t.slice(4).toLowerCase()):t}))}},void 0===(i=function(){return a}.call(e,r,e,t))||(t.exports=i)}()}).call(this,r(141)(t),r(3))},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,\"loaded\",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,\"id\",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},function(t,e,r){\"use strict\";var n=r(143),i=r(154),o=r(46);t.exports={formats:o,parse:i,stringify:n}},function(t,e,r){\"use strict\";var n=r(144),i=r(71),o=r(46),s=Object.prototype.hasOwnProperty,a={brackets:function(t){return t+\"[]\"},comma:\"comma\",indices:function(t,e){return t+\"[\"+e+\"]\"},repeat:function(t){return t}},u=Array.isArray,c=Array.prototype.push,l=function(t,e){c.apply(t,u(e)?e:[e])},f=Date.prototype.toISOString,h=o.default,d={addQueryPrefix:!1,allowDots:!1,charset:\"utf-8\",charsetSentinel:!1,delimiter:\"&\",encode:!0,encoder:i.encode,encodeValuesOnly:!1,format:h,formatter:o.formatters[h],indices:!1,serializeDate:function(t){return f.call(t)},skipNulls:!1,strictNullHandling:!1},p={},y=function t(e,r,o,s,a,c,f,h,y,g,m,b,v,w,x,_){for(var S,A=e,E=_,k=0,T=!1;void 0!==(E=E.get(p))&&!T;){var O=E.get(e);if(k+=1,void 0!==O){if(O===k)throw new RangeError(\"Cyclic object value\");T=!0}void 0===E.get(p)&&(k=0)}if(\"function\"==typeof h?A=h(r,A):A instanceof Date?A=m(A):\"comma\"===o&&u(A)&&(A=i.maybeMap(A,(function(t){return t instanceof Date?m(t):t}))),null===A){if(a)return f&&!w?f(r,d.encoder,x,\"key\",b):r;A=\"\"}if(\"string\"==typeof(S=A)||\"number\"==typeof S||\"boolean\"==typeof S||\"symbol\"==typeof S||\"bigint\"==typeof S||i.isBuffer(A))return f?[v(w?r:f(r,d.encoder,x,\"key\",b))+\"=\"+v(f(A,d.encoder,x,\"value\",b))]:[v(r)+\"=\"+v(String(A))];var C,P=[];if(void 0===A)return P;if(\"comma\"===o&&u(A))w&&f&&(A=i.maybeMap(A,f)),C=[{value:A.length>0?A.join(\",\")||null:void 0}];else if(u(h))C=h;else{var I=Object.keys(A);C=y?I.sort(y):I}for(var R=s&&u(A)&&1===A.length?r+\"[]\":r,j=0;j0?x+w:\"\"}},function(t,e,r){\"use strict\";var n=r(44),i=r(150),o=r(152),s=n(\"%TypeError%\"),a=n(\"%WeakMap%\",!0),u=n(\"%Map%\",!0),c=i(\"WeakMap.prototype.get\",!0),l=i(\"WeakMap.prototype.set\",!0),f=i(\"WeakMap.prototype.has\",!0),h=i(\"Map.prototype.get\",!0),d=i(\"Map.prototype.set\",!0),p=i(\"Map.prototype.has\",!0),y=function(t,e){for(var r,n=t;null!==(r=n.next);n=r)if(r.key===e)return n.next=r.next,r.next=t.next,t.next=r,r};t.exports=function(){var t,e,r,n={assert:function(t){if(!n.has(t))throw new s(\"Side channel does not contain \"+o(t))},get:function(n){if(a&&n&&(\"object\"==typeof n||\"function\"==typeof n)){if(t)return c(t,n)}else if(u){if(e)return h(e,n)}else if(r)return function(t,e){var r=y(t,e);return r&&r.value}(r,n)},has:function(n){if(a&&n&&(\"object\"==typeof n||\"function\"==typeof n)){if(t)return f(t,n)}else if(u){if(e)return p(e,n)}else if(r)return function(t,e){return!!y(t,e)}(r,n);return!1},set:function(n,i){a&&n&&(\"object\"==typeof n||\"function\"==typeof n)?(t||(t=new a),l(t,n,i)):u?(e||(e=new u),d(e,n,i)):(r||(r={key:{},next:null}),function(t,e,r){var n=y(t,e);n?n.value=r:t.next={key:e,next:t.next,value:r}}(r,n,i))}};return n}},function(t,e,r){\"use strict\";var n=\"undefined\"!=typeof Symbol&&Symbol,i=r(146);t.exports=function(){return\"function\"==typeof n&&(\"function\"==typeof Symbol&&(\"symbol\"==typeof n(\"foo\")&&(\"symbol\"==typeof Symbol(\"bar\")&&i())))}},function(t,e,r){\"use strict\";t.exports=function(){if(\"function\"!=typeof Symbol||\"function\"!=typeof Object.getOwnPropertySymbols)return!1;if(\"symbol\"==typeof Symbol.iterator)return!0;var t={},e=Symbol(\"test\"),r=Object(e);if(\"string\"==typeof e)return!1;if(\"[object Symbol]\"!==Object.prototype.toString.call(e))return!1;if(\"[object Symbol]\"!==Object.prototype.toString.call(r))return!1;for(e in t[e]=42,t)return!1;if(\"function\"==typeof Object.keys&&0!==Object.keys(t).length)return!1;if(\"function\"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(t).length)return!1;var n=Object.getOwnPropertySymbols(t);if(1!==n.length||n[0]!==e)return!1;if(!Object.prototype.propertyIsEnumerable.call(t,e))return!1;if(\"function\"==typeof Object.getOwnPropertyDescriptor){var i=Object.getOwnPropertyDescriptor(t,e);if(42!==i.value||!0!==i.enumerable)return!1}return!0}},function(t,e,r){\"use strict\";var n={foo:{}},i=Object;t.exports=function(){return{__proto__:n}.foo===n.foo&&!({__proto__:null}instanceof i)}},function(t,e,r){\"use strict\";var n=\"Function.prototype.bind called on incompatible \",i=Array.prototype.slice,o=Object.prototype.toString;t.exports=function(t){var e=this;if(\"function\"!=typeof e||\"[object Function]\"!==o.call(e))throw new TypeError(n+e);for(var r,s=i.call(arguments,1),a=function(){if(this instanceof r){var n=e.apply(this,s.concat(i.call(arguments)));return Object(n)===n?n:this}return e.apply(t,s.concat(i.call(arguments)))},u=Math.max(0,e.length-s.length),c=[],l=0;l-1?i(r):r}},function(t,e,r){\"use strict\";var n=r(45),i=r(44),o=i(\"%Function.prototype.apply%\"),s=i(\"%Function.prototype.call%\"),a=i(\"%Reflect.apply%\",!0)||n.call(s,o),u=i(\"%Object.getOwnPropertyDescriptor%\",!0),c=i(\"%Object.defineProperty%\",!0),l=i(\"%Math.max%\");if(c)try{c({},\"a\",{value:1})}catch(t){c=null}t.exports=function(t){var e=a(n,s,arguments);if(u&&c){var r=u(e,\"length\");r.configurable&&c(e,\"length\",{value:1+l(0,t.length-(arguments.length-1))})}return e};var f=function(){return a(n,o,arguments)};c?c(t.exports,\"apply\",{value:f}):t.exports.apply=f},function(t,e,r){var n=\"function\"==typeof Map&&Map.prototype,i=Object.getOwnPropertyDescriptor&&n?Object.getOwnPropertyDescriptor(Map.prototype,\"size\"):null,o=n&&i&&\"function\"==typeof i.get?i.get:null,s=n&&Map.prototype.forEach,a=\"function\"==typeof Set&&Set.prototype,u=Object.getOwnPropertyDescriptor&&a?Object.getOwnPropertyDescriptor(Set.prototype,\"size\"):null,c=a&&u&&\"function\"==typeof u.get?u.get:null,l=a&&Set.prototype.forEach,f=\"function\"==typeof WeakMap&&WeakMap.prototype?WeakMap.prototype.has:null,h=\"function\"==typeof WeakSet&&WeakSet.prototype?WeakSet.prototype.has:null,d=\"function\"==typeof WeakRef&&WeakRef.prototype?WeakRef.prototype.deref:null,p=Boolean.prototype.valueOf,y=Object.prototype.toString,g=Function.prototype.toString,m=String.prototype.match,b=String.prototype.slice,v=String.prototype.replace,w=String.prototype.toUpperCase,x=String.prototype.toLowerCase,_=RegExp.prototype.test,S=Array.prototype.concat,A=Array.prototype.join,E=Array.prototype.slice,k=Math.floor,T=\"function\"==typeof BigInt?BigInt.prototype.valueOf:null,O=Object.getOwnPropertySymbols,C=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?Symbol.prototype.toString:null,P=\"function\"==typeof Symbol&&\"object\"==typeof Symbol.iterator,I=\"function\"==typeof Symbol&&Symbol.toStringTag&&(typeof Symbol.toStringTag===P||\"symbol\")?Symbol.toStringTag:null,R=Object.prototype.propertyIsEnumerable,j=(\"function\"==typeof Reflect?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(t){return t.__proto__}:null);function M(t,e){if(t===1/0||t===-1/0||t!=t||t&&t>-1e3&&t<1e3||_.call(/e/,e))return e;var r=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if(\"number\"==typeof t){var n=t<0?-k(-t):k(t);if(n!==t){var i=String(n),o=b.call(e,i.length+1);return v.call(i,r,\"$&_\")+\".\"+v.call(v.call(o,/([0-9]{3})/g,\"$&_\"),/_$/,\"\")}}return v.call(e,r,\"$&_\")}var L=r(153),F=L.custom,N=q(F)?F:null;function D(t,e,r){var n=\"double\"===(r.quoteStyle||e)?'\"':\"'\";return n+t+n}function U(t){return v.call(String(t),/\"/g,\""\")}function B(t){return!(\"[object Array]\"!==W(t)||I&&\"object\"==typeof t&&I in t)}function G(t){return!(\"[object RegExp]\"!==W(t)||I&&\"object\"==typeof t&&I in t)}function q(t){if(P)return t&&\"object\"==typeof t&&t instanceof Symbol;if(\"symbol\"==typeof t)return!0;if(!t||\"object\"!=typeof t||!C)return!1;try{return C.call(t),!0}catch(t){}return!1}t.exports=function t(e,r,n,i){var a=r||{};if(H(a,\"quoteStyle\")&&\"single\"!==a.quoteStyle&&\"double\"!==a.quoteStyle)throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');if(H(a,\"maxStringLength\")&&(\"number\"==typeof a.maxStringLength?a.maxStringLength<0&&a.maxStringLength!==1/0:null!==a.maxStringLength))throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');var u=!H(a,\"customInspect\")||a.customInspect;if(\"boolean\"!=typeof u&&\"symbol\"!==u)throw new TypeError(\"option \\\"customInspect\\\", if provided, must be `true`, `false`, or `'symbol'`\");if(H(a,\"indent\")&&null!==a.indent&&\"\\t\"!==a.indent&&!(parseInt(a.indent,10)===a.indent&&a.indent>0))throw new TypeError('option \"indent\" must be \"\\\\t\", an integer > 0, or `null`');if(H(a,\"numericSeparator\")&&\"boolean\"!=typeof a.numericSeparator)throw new TypeError('option \"numericSeparator\", if provided, must be `true` or `false`');var y=a.numericSeparator;if(void 0===e)return\"undefined\";if(null===e)return\"null\";if(\"boolean\"==typeof e)return e?\"true\":\"false\";if(\"string\"==typeof e)return function t(e,r){if(e.length>r.maxStringLength){var n=e.length-r.maxStringLength,i=\"... \"+n+\" more character\"+(n>1?\"s\":\"\");return t(b.call(e,0,r.maxStringLength),r)+i}return D(v.call(v.call(e,/(['\\\\])/g,\"\\\\$1\"),/[\\x00-\\x1f]/g,$),\"single\",r)}(e,a);if(\"number\"==typeof e){if(0===e)return 1/0/e>0?\"0\":\"-0\";var w=String(e);return y?M(e,w):w}if(\"bigint\"==typeof e){var _=String(e)+\"n\";return y?M(e,_):_}var k=void 0===a.depth?5:a.depth;if(void 0===n&&(n=0),n>=k&&k>0&&\"object\"==typeof e)return B(e)?\"[Array]\":\"[Object]\";var O=function(t,e){var r;if(\"\\t\"===t.indent)r=\"\\t\";else{if(!(\"number\"==typeof t.indent&&t.indent>0))return null;r=A.call(Array(t.indent+1),\" \")}return{base:r,prev:A.call(Array(e+1),r)}}(a,n);if(void 0===i)i=[];else if(V(i,e)>=0)return\"[Circular]\";function F(e,r,o){if(r&&(i=E.call(i)).push(r),o){var s={depth:a.depth};return H(a,\"quoteStyle\")&&(s.quoteStyle=a.quoteStyle),t(e,s,n+1,i)}return t(e,a,n+1,i)}if(\"function\"==typeof e&&!G(e)){var z=function(t){if(t.name)return t.name;var e=m.call(g.call(t),/^function\\s*([\\w$]+)/);if(e)return e[1];return null}(e),J=Q(e,F);return\"[Function\"+(z?\": \"+z:\" (anonymous)\")+\"]\"+(J.length>0?\" { \"+A.call(J,\", \")+\" }\":\"\")}if(q(e)){var tt=P?v.call(String(e),/^(Symbol\\(.*\\))_[^)]*$/,\"$1\"):C.call(e);return\"object\"!=typeof e||P?tt:K(tt)}if(function(t){if(!t||\"object\"!=typeof t)return!1;if(\"undefined\"!=typeof HTMLElement&&t instanceof HTMLElement)return!0;return\"string\"==typeof t.nodeName&&\"function\"==typeof t.getAttribute}(e)){for(var et=\"<\"+x.call(String(e.nodeName)),rt=e.attributes||[],nt=0;nt\",e.childNodes&&e.childNodes.length&&(et+=\"...\"),et+=\"\"}if(B(e)){if(0===e.length)return\"[]\";var it=Q(e,F);return O&&!function(t){for(var e=0;e=0)return!1;return!0}(it)?\"[\"+X(it,O)+\"]\":\"[ \"+A.call(it,\", \")+\" ]\"}if(function(t){return!(\"[object Error]\"!==W(t)||I&&\"object\"==typeof t&&I in t)}(e)){var ot=Q(e,F);return\"cause\"in Error.prototype||!(\"cause\"in e)||R.call(e,\"cause\")?0===ot.length?\"[\"+String(e)+\"]\":\"{ [\"+String(e)+\"] \"+A.call(ot,\", \")+\" }\":\"{ [\"+String(e)+\"] \"+A.call(S.call(\"[cause]: \"+F(e.cause),ot),\", \")+\" }\"}if(\"object\"==typeof e&&u){if(N&&\"function\"==typeof e[N]&&L)return L(e,{depth:k-n});if(\"symbol\"!==u&&\"function\"==typeof e.inspect)return e.inspect()}if(function(t){if(!o||!t||\"object\"!=typeof t)return!1;try{o.call(t);try{c.call(t)}catch(t){return!0}return t instanceof Map}catch(t){}return!1}(e)){var st=[];return s&&s.call(e,(function(t,r){st.push(F(r,e,!0)+\" => \"+F(t,e))})),Z(\"Map\",o.call(e),st,O)}if(function(t){if(!c||!t||\"object\"!=typeof t)return!1;try{c.call(t);try{o.call(t)}catch(t){return!0}return t instanceof Set}catch(t){}return!1}(e)){var at=[];return l&&l.call(e,(function(t){at.push(F(t,e))})),Z(\"Set\",c.call(e),at,O)}if(function(t){if(!f||!t||\"object\"!=typeof t)return!1;try{f.call(t,f);try{h.call(t,h)}catch(t){return!0}return t instanceof WeakMap}catch(t){}return!1}(e))return Y(\"WeakMap\");if(function(t){if(!h||!t||\"object\"!=typeof t)return!1;try{h.call(t,h);try{f.call(t,f)}catch(t){return!0}return t instanceof WeakSet}catch(t){}return!1}(e))return Y(\"WeakSet\");if(function(t){if(!d||!t||\"object\"!=typeof t)return!1;try{return d.call(t),!0}catch(t){}return!1}(e))return Y(\"WeakRef\");if(function(t){return!(\"[object Number]\"!==W(t)||I&&\"object\"==typeof t&&I in t)}(e))return K(F(Number(e)));if(function(t){if(!t||\"object\"!=typeof t||!T)return!1;try{return T.call(t),!0}catch(t){}return!1}(e))return K(F(T.call(e)));if(function(t){return!(\"[object Boolean]\"!==W(t)||I&&\"object\"==typeof t&&I in t)}(e))return K(p.call(e));if(function(t){return!(\"[object String]\"!==W(t)||I&&\"object\"==typeof t&&I in t)}(e))return K(F(String(e)));if(!function(t){return!(\"[object Date]\"!==W(t)||I&&\"object\"==typeof t&&I in t)}(e)&&!G(e)){var ut=Q(e,F),ct=j?j(e)===Object.prototype:e instanceof Object||e.constructor===Object,lt=e instanceof Object?\"\":\"null prototype\",ft=!ct&&I&&Object(e)===e&&I in e?b.call(W(e),8,-1):lt?\"Object\":\"\",ht=(ct||\"function\"!=typeof e.constructor?\"\":e.constructor.name?e.constructor.name+\" \":\"\")+(ft||lt?\"[\"+A.call(S.call([],ft||[],lt||[]),\": \")+\"] \":\"\");return 0===ut.length?ht+\"{}\":O?ht+\"{\"+X(ut,O)+\"}\":ht+\"{ \"+A.call(ut,\", \")+\" }\"}return String(e)};var z=Object.prototype.hasOwnProperty||function(t){return t in this};function H(t,e){return z.call(t,e)}function W(t){return y.call(t)}function V(t,e){if(t.indexOf)return t.indexOf(e);for(var r=0,n=t.length;r-1?t.split(\",\"):t},c=function(t,e,r,n){if(t){var o=r.allowDots?t.replace(/\\.([^.[]+)/g,\"[$1]\"):t,s=/(\\[[^[\\]]*])/g,a=r.depth>0&&/(\\[[^[\\]]*])/.exec(o),c=a?o.slice(0,a.index):o,l=[];if(c){if(!r.plainObjects&&i.call(Object.prototype,c)&&!r.allowPrototypes)return;l.push(c)}for(var f=0;r.depth>0&&null!==(a=s.exec(o))&&f=0;--o){var s,a=t[o];if(\"[]\"===a&&r.parseArrays)s=[].concat(i);else{s=r.plainObjects?Object.create(null):{};var c=\"[\"===a.charAt(0)&&\"]\"===a.charAt(a.length-1)?a.slice(1,-1):a,l=parseInt(c,10);r.parseArrays||\"\"!==c?!isNaN(l)&&a!==c&&String(l)===c&&l>=0&&r.parseArrays&&l<=r.arrayLimit?(s=[])[l]=i:\"__proto__\"!==c&&(s[c]=i):s={0:i}}i=s}return i}(l,e,r,n)}};t.exports=function(t,e){var r=function(t){if(!t)return s;if(null!==t.decoder&&void 0!==t.decoder&&\"function\"!=typeof t.decoder)throw new TypeError(\"Decoder has to be a function.\");if(void 0!==t.charset&&\"utf-8\"!==t.charset&&\"iso-8859-1\"!==t.charset)throw new TypeError(\"The charset option must be either utf-8, iso-8859-1, or undefined\");var e=void 0===t.charset?s.charset:t.charset;return{allowDots:void 0===t.allowDots?s.allowDots:!!t.allowDots,allowPrototypes:\"boolean\"==typeof t.allowPrototypes?t.allowPrototypes:s.allowPrototypes,allowSparse:\"boolean\"==typeof t.allowSparse?t.allowSparse:s.allowSparse,arrayLimit:\"number\"==typeof t.arrayLimit?t.arrayLimit:s.arrayLimit,charset:e,charsetSentinel:\"boolean\"==typeof t.charsetSentinel?t.charsetSentinel:s.charsetSentinel,comma:\"boolean\"==typeof t.comma?t.comma:s.comma,decoder:\"function\"==typeof t.decoder?t.decoder:s.decoder,delimiter:\"string\"==typeof t.delimiter||n.isRegExp(t.delimiter)?t.delimiter:s.delimiter,depth:\"number\"==typeof t.depth||!1===t.depth?+t.depth:s.depth,ignoreQueryPrefix:!0===t.ignoreQueryPrefix,interpretNumericEntities:\"boolean\"==typeof t.interpretNumericEntities?t.interpretNumericEntities:s.interpretNumericEntities,parameterLimit:\"number\"==typeof t.parameterLimit?t.parameterLimit:s.parameterLimit,parseArrays:!1!==t.parseArrays,plainObjects:\"boolean\"==typeof t.plainObjects?t.plainObjects:s.plainObjects,strictNullHandling:\"boolean\"==typeof t.strictNullHandling?t.strictNullHandling:s.strictNullHandling}}(e);if(\"\"===t||null==t)return r.plainObjects?Object.create(null):{};for(var l=\"string\"==typeof t?function(t,e){var r,c={__proto__:null},l=e.ignoreQueryPrefix?t.replace(/^\\?/,\"\"):t,f=e.parameterLimit===1/0?void 0:e.parameterLimit,h=l.split(e.delimiter,f),d=-1,p=e.charset;if(e.charsetSentinel)for(r=0;r-1&&(g=o(g)?[g]:g),i.call(c,y)?c[y]=n.combine(c[y],g):c[y]=g}return c}(t,r):t,f=r.plainObjects?Object.create(null):{},h=Object.keys(l),d=0;d{e&&console.log(\"starting getPalette with image\",t);const{fileDirectory:r}=t,{BitsPerSample:n,ColorMap:i,ImageLength:o,ImageWidth:s,PhotometricInterpretation:a,SampleFormat:u,SamplesPerPixel:c}=r;if(!i)throw new Error(\"[geotiff-palette]: the image does not contain a color map, so we can't make a palette.\");const l=Math.pow(2,n);e&&console.log(\"[geotiff-palette]: count:\",l);const f=i.length/3;if(e&&console.log(\"[geotiff-palette]: bandSize:\",f),f!==l)throw new Error(\"[geotiff-palette]: can't handle situations where the color map has more or less values than the number of possible values in a raster\");const h=f,d=h+f,p=[];for(let t=0;te in t?i(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,c=(t,e)=>i(t,\"name\",{value:e,configurable:!0});const l=r(157),f=r(192),h=r(194),d=c(t=>new Array(t).fill(0).map((t,e)=>e),\"range\");function p(t,e={}){var r=e,{bands:n,height:i,precise:c=!1,stats:p,width:y,layout:g}=r,m=((t,e)=>{var r={};for(var n in t)s.call(t,n)&&e.indexOf(n)<0&&(r[n]=t[n]);if(null!=t&&o)for(var n of o(t))e.indexOf(n)<0&&a.call(t,n)&&(r[n]=t[n]);return r})(r,[\"bands\",\"height\",\"precise\",\"stats\",\"width\",\"layout\"]);if(\"function\"==typeof t.then)throw new Error(\"[calc-image-stats] you passed in a promise as the data values. please resolve the promise first before calling calcImageStats\");const b=f({bands:n,data:t,height:i,layout:g,width:y});null!=n||(n=b.bands),null!=i||(i=b.height),null!=g||(g=b.layout),null!=y||(y=b.width);const v=d(n).map(e=>{let r;const f=((t,e)=>{for(var r in e||(e={}))s.call(e,r)&&u(t,r,e[r]);if(o)for(var r of o(e))a.call(e,r)&&u(t,r,e[r]);return t})({precise:c,stats:p},m);if([\"[band][row,column]\",\"[band][column,row]\"].includes(g))r=t[e];else if([\"[band][row][column]\",\"[band][column][row]\"].includes(g))r=t[e],f.chunked=!0;else if(1===n&&[\"[band,row,column]\",\"[row,column,band]\",\"[column,band,row]\",\"[column,row,band]\"].includes(g))r=t;else{const o={band:[e,e]},s={band:n,column:y,row:i};r=h.iterClip({data:t,layout:g,rect:o,sizes:s})}return l(r,f)});return{depth:n,height:i,width:y,bands:v}}c(p,\"calcImageStats\"),void 0!==(n=function(){return p}.call(e,r,e,t))&&(t.exports=n),t.exports=p,t.exports.default=p,t.exports.calcImageStats=p,\"object\"==typeof self&&(self.calcImageStats=p),\"object\"==typeof window&&(self.calcImageStats=p)},function(t,e,r){var n;const{getOrCreateIterator:i}=r(72),{add:o,compare:s,divide:a,mean:u,multiply:c,pow:l,sort:f,subtract:h,sum:d}=r(158),p=r(181);function y(t,{async:e=!1,chunked:r=!1,noData:n,filter:d,calcCount:y=!0,calcHistogram:g=!0,calcInvalid:m=!0,calcMax:b=!0,calcMean:v=!0,calcMedian:w=!0,calcMin:x=!0,calcMode:_=!0,calcModes:S=!0,calcProduct:A=!0,calcRange:E=!0,calcStd:k=!0,calcSum:T=!0,calcValid:O=!0,calcVariance:C=!0,calcUniques:P=!0,precise:I=!1,precise_max_decimal_digits:R=100,stats:j}={debugLevel:0}){j&&(j.forEach(t=>{[\"count\",\"histogram\",\"invalid\",\"max\",\"mean\",\"median\",\"min\",\"mode\",\"modes\",\"product\",\"range\",\"sum\",\"std\",\"valid\",\"variance\",\"uniques\"].includes(t)||console.warn(`[calc-stats] skipping unknown stat \"${t}\"`)}),y=j.includes(\"count\"),g=j.includes(\"histogram\"),m=j.includes(\"invalid\"),b=j.includes(\"max\"),v=j.includes(\"mean\"),w=j.includes(\"median\"),x=j.includes(\"min\"),_=j.includes(\"mode\"),S=j.includes(\"modes\"),A=j.includes(\"product\"),E=j.includes(\"range\"),k=j.includes(\"std\"),T=j.includes(\"sum\"),O=j.includes(\"valid\"),C=j.includes(\"variance\"),P=j.includes(\"uniques\"));const M=i(t);let L,F,N,D=g||w||_||S||C||k||P,U=y||v||w||A||O||C||k||\"function\"==typeof d,B=y||m||\"function\"==typeof d,G=T||v||C||k,q=x||E,z=b||E,H=A,W=0,V=0,$=0,K=I?\"0\":0;const Y={};let Z,X;Z=I?t=>{t=t.toString(),U&&W++,!q||void 0!==L&&\"<\"!==s(t,L)||(L=t),!z||void 0!==F&&\">\"!==s(t,F)||(F=t),H&&(N=1===W?t:c(N,t)),G&&(K=o(K,t)),D&&(t in Y?Y[t].ct++:Y[t]={n:t.toString(),ct:1})}:t=>{U&&W++,q&&(void 0===L||tF)&&(F=t),H&&(N=1===W?t:N*t),G&&(K+=t),D&&(t in Y?Y[t].ct++:Y[t]={n:t,ct:1})},X=\"number\"==typeof n&&\"function\"==typeof d?t=>{$++,\"number\"!=typeof t||isNaN(t)||t===n||!0!==d({valid:W,index:$,value:t})?B&&V++:Z(t)}:\"number\"==typeof n?t=>{\"number\"!=typeof t||isNaN(t)||t===n?B&&V++:Z(t)}:\"function\"==typeof d?t=>{$++,\"number\"!=typeof t||isNaN(t)||!0!==d({valid:W,index:$,value:t})?B&&V++:Z(t)}:t=>{\"number\"!=typeof t||isNaN(t)?B&&V++:Z(t)};const Q=()=>{const t={};if(y&&(t.count=I?o(V.toString(),W.toString()):V+W),O&&(t.valid=I?W.toString():W),m&&(t.invalid=I?V.toString():V),w&&(t.median=p.calculate({counts:Y,precise:I,total:W})),x&&(t.min=L),b&&(t.max=F),A&&(t.product=N),T&&(t.sum=K),E&&(t.range=I?h(F.toString(),L.toString()):F-L),v||C||k){const e=I?a(K,W.toString(),{max_decimal_digits:R}):K/W;if(v&&(t.mean=e),C||k){const r=(({count:t,histogram:e,mean_value:r,precise:n=!1})=>{if(n){r=r.toString();const n=Object.values(e).reduce((t,{n:e,ct:n})=>{const i=h(e.toString(),r);return o(t,c(n.toString(),l(i,\"2\")))},\"0\");return a(n,t.toString())}return Object.values(e).reduce((t,{n:e,ct:n})=>t+n*Math.pow(e-r,2),0)/t})({count:W,histogram:Y,mean_value:e,precise:I});C&&(t.variance=r),k&&(t.std=I?Math.sqrt(Number(r)).toString():Math.sqrt(r))}}if(g&&(I&&Object.values(Y).forEach(t=>{t.ct=t.ct.toString()}),t.histogram=Y),_||S){let e=0,r=[];for(let t in Y){const{n:n,ct:i}=Y[t];i===e?r.push(I?n.toString():n):i>e&&(e=i,r=[I?n.toString():n])}S&&(t.modes=r),_&&(t.mode=I?u(r):r.reduce((t,e)=>t+e,0)/r.length)}return P&&(t.uniques=I?f(Object.keys(Y)):Object.values(Y).map(({n:t})=>t).sort((t,e)=>t-e)),t};if(r){if(e)return(async()=>{for await(let t of M)for(let e of t)X(e);return Q()})();for(let t of M)for(let e of t)X(e);return Q()}if(e)return(async()=>{for await(let t of M)X(t);return Q()})();for(let t of M)X(t);return Q()}void 0===(n=function(){return y}.call(e,r,e,t))||(t.exports=n),t.exports=y,t.exports.default=y,t.exports.calcStats=y,\"object\"==typeof self&&(self.calcStats=y),\"object\"==typeof window&&(window.calcStats=y)},function(t,e,r){\"use strict\";var n;const i=r(4),o=r(6),s=r(159),a=r(76),u=r(0),c=r(34),l=r(5),f=r(161),h=r(163),d=r(51),p=r(84),y=r(167),g=r(168),m=r(1),b=r(88),v=r(89),w=r(73),x=r(75),_=r(169),S=r(170),A=r(77),E=r(171),k=r(172),T=r(15),O=r(16),C=r(90),P=r(91),I=r(11),R=r(9),j=r(32),M=r(48),L=r(31),F=r(173),N={absolute:i,add:o,binomial_coefficient:s,ceil:a,clean:u,compare:c,compare_positive:l,constants:f,cosine_radians:h,count_decimal_digits:d,count_integer_digits:p,cube:y,cube_root:g,divide:m,eulers_number:b,exp:v,expand:w,factorial:x,flip_sign:_,floor:S,fraction:A,hypotenuse:E,is_infinity:T,is_integer:O,is_factorial:k,is_negative_infinity:C,is_positive_infinity:P,is_zero:I,long_addition:R,long_division:j,long_multiplication:M,long_subtraction:L,mean:r(174),max:F,min:r(86),multiply:r(53),multiply_array:r(79),multiply_range:r(47),nilakantha:r(175),ols:r(176),pow:r(35),pow_positive:r(54),primes:r(87),reciprocal:r(81),remainder:r(177),root:r(37),root_integer_digits:r(83),round:r(36),round_last_decimal:r(49),sign:r(22),sign_nonzero:r(50),simplify_fraction:r(85),sine_radians:r(178),softmax:r(179),sort:r(180),square:r(23),square_root:r(92),subtract:r(33),sum:r(55),truncate:r(93)};void 0===(n=function(){return N}.call(e,r,e,t))||(t.exports=n),t.exports=N,t.exports.default=N,\"object\"==typeof window&&(window.preciso=N),\"object\"==typeof self&&(self.preciso=N)},function(t,e,r){\"use strict\";const n=r(0),i=r(5),o=r(75),s=r(9),a=r(31),u=r(32),c=r(47);function l(t,e){switch(t=n(t),e=n(e),i(t,e)){case\"=\":return\"1\";case\">\":{const r=a(t,e),n=c(s(e,\"1\"),t),i=o(r);return u(n,i)}case\"<\":throw new Error(\"[binominal_coefficient] unsupported\")}}t.exports=l,t.exports.default=l},function(t,e,r){\"use strict\";function n(t){return t.substring(0,t.indexOf(\".\"))}t.exports=n,t.exports.default=n},function(t,e,r){\"use strict\";const{MAX_SAFE_INTEGER:n}=r(74),{MAX_SAFE_INTEGER_LENGTH:i}=r(30),{PI:o}=r(162);t.exports={MAX_SAFE_INTEGER:n,MAX_SAFE_INTEGER_LENGTH:i,PI:o}},function(t,e){t.exports={PI_100:\"3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679\"}},function(t,e,r){\"use strict\";const n=r(6),i=r(11),o=r(23),s=r(17),a=r(1);function u(t,{steps:e=100,max_decimal_digits:r=100}={}){if(i(t))return\"0\";let u,c=\"-\",l=\"1\",f=e,h=o(t),d=\"1\",p=\"1\",y=\"0\";for(let t=0;tn(t));return i(o(s),e)}t.exports=s,t.exports.default=s},function(t,e,r){\"use strict\";function n(t){return!!t.match(/^\\d+!$/i)}t.exports=n,t.exports.default=n},function(t,e,r){\"use strict\";const n=r(0),i=r(34);function o(t){\"string\"==typeof t&&(t=Array.prototype.slice.call(arguments));let e=n(t[0]);const r=t.length;for(let n=1;n\"===i(r,e)&&(e=r)}return e}t.exports=o,t.exports.default=o},function(t,e,r){\"use strict\";const n=r(6),i=r(1);function o(t,e){let r=0,o=\"0\";for(let e of t)r++,o=n(o,e);return i(o,r.toString(),e)}t.exports=o,t.exports.default=o},function(t,e,r){\"use strict\";const n=r(6),i=r(9),o=r(1),s=r(17);function a(t=100,{divide_options:e}={}){let r=\"+\",a=\"3\",u=\"2\",c=\"3\",l=\"4\";for(let f=1;fi(t,{max_decimal_digits:e}));const r=o(t);return t.map(t=>n(t,r,{max_decimal_digits:e,ellipsis:!1}))}t.exports=s,t.exports.default=s},function(t,e,r){\"use strict\";const n=r(34);function i(t,{direction:e=\"ascending\"}={direction:\"ascending\"}){const r=\"desc\"===e||\"descending\"===e?\"<\":\">\";return t.sort((t,e)=>n(t,e)===r?1:-1)}t.exports=i,t.exports.default=i},function(t,e,r){var n;const i=r(182),o=r(191);function s({counts:t,nums:e,no_data:r,precise:n,threshold:s=50,total:a}){return void 0!==t||void 0!==a||e.length>s?i({counts:t,no_data:r,nums:e,precise:n,total:a}):o({no_data:r,nums:e,precise:n})}const a={calculate:s};void 0===(n=function(){return a}.call(e,r,e,t))||(t.exports=n),t.exports=a,t.exports.default={calculate:s},\"object\"==typeof window&&(window.mediana=a),\"object\"==typeof self&&(self.mediana=a)},function(t,e,r){const n=r(183),i=r(94);function o({counts:t,nums:e,no_data:r,precise:o=!1,total:s}){void 0!==t&&void 0!==s||({counts:t,total:s}=n({nums:e,no_data:r}));const a=Object.values(t).sort((t,e)=>t.n-e.n),u=s/2,c=a.length;if(0!==c){if(1===c)return o?a[0].n.toString():a[0].n;{let t=0;if(s%2==0)for(let e=0;eu)return t-n===u?i(a[e-1].n,r,{precise:o}):o?r.toString():r}else for(let e=0;eu)return o?r.toString():r}}}}t.exports=o,t.exports.default=o},function(t,e){function r({nums:t,no_data:e}){let r=t.length;const n={};let i=0;if(void 0!==e)for(let o=0;o=a){const t=s-a;let r=o;for(let e=0;es;t--)result+=\"0\";return result+=o,e+result}return e+o.substring(0,s)+\".\"+o.substring(s)}t.exports=r,t.exports.default=r},function(t,e,r){const n=r(98),i=r(18),o=r(186);function s(t,e,r){if(t=i(t),\"0\"===(e=i(e)))throw new Error(\"[preciso] division by zero\");if(\"\"===t||\"0\"===t)return\"0\";const s=\"-\"!==t[0],a=\"-\"!==e[0],u=s!==a?\"-\":\"\";return s||(t=n(t)),a||(e=n(e)),u+o(t,e,r)}t.exports=s,t.exports.default=s},function(t,e,r){const n=r(38),i=r(95),o=(r(187),r(189)),s=r(190);t.exports=function(t,e,{max_decimal_digits:r=100,ellipsis:a=!1}={}){\"0\"===t[0]&&(t=t.substring(1)),\"0\"===e[0]&&(e=e.substring(1));const u=t.indexOf(\".\"),c=e.indexOf(\".\"),l=-1===u?t.length:u,f=-1===c?0:e.length-1-c;let h=!1;t=t.replace(/\\./,\"\"),e=e.replace(/\\./,\"\");const d=t.length;let p,y=\"\",g=\"\",m=-1*f,b=0;for(let r=0;r\"===p){let t=1,r=i(e,e),s=e;for(;\">\"!==n(r,y);)t++,s=r,r=i(r,e);if(t=t.toString(),\"\"!==g)for(let e=t.length;e<=b;e++)g+=\"0\";g+=t,y=o(y,s),b=0}else{if(\"<\"===p){\"\"===g&&m++,b++;continue}if(\"=\"===p){if(\"\"!==g)for(let t=0;t3){g+=\"...\",h=!0;break}}else t[y]=1;const r=n(y,e);if(\">\"===r){let t=1,r=i(e,e),s=e;for(;\">\"!==n(r,y);)t++,s=r,r=i(r,e);t=t.toString();for(let e=t.length;e<=b;e++)g+=\"0\";if(g+=t,y=o(y,s),\"0\"===y)break;b=0}else{if(\"<\"===r){b++;continue}if(\"=\"===r){for(let t=0;tw){for(let t=w;t0&&(g=s(g.substring(0,g.length-t+1)))}return\".\"===g[0]&&(g=\"0\"+g),g}},function(t,e,r){const n=r(98),i=r(18),o=r(38),s=r(188);function a(t,e){t=i(t),e=i(e);const r=\"-\"!==t[0]!==(\"-\"!==e[0])?\"-\":\"\";t=n(t),e=n(e);if(\"<\"===o(t,e)){const r=t;t=e,e=r}return r+s(t,e)}t.exports=a,t.exports.default=a},function(t,e,r){const{MAX_SAFE_INTEGER_LENGTH:n}=r(56);t.exports=function(t,e){if(\"0\"===t||\"0\"===e)return\"0\";const r=t.indexOf(\".\"),i=e.indexOf(\".\"),o=(-1===r?t.length:r)+(-1===i?e.length:i),s=(-1===r?0:t.length-1-r)+(-1===i?0:e.length-1-i);if(0===s&&o=0;){const t=h,e=h-=15,r=a.substring(e,t);f.push([Number(r),r.length])}const d=[],p=[];for(let t=0,e=l-1;e>=0;e--,t++){const r=u[e],n=Number(r);let i=0,o=\"\";const s=f.length-1;f.forEach(([t,e],r)=>{let a=(i+n*t).toString();const u=a.length;if(u>e&&r!==s){const t=-1*e;o=a.slice(t)+o,i=Number(a.slice(0,t))}else{const t=e-u;for(let e=0;eNumber(t)),o.length])}const y=d.length,g=p[p.length-1][1]+y;let m=\"\",b=0;for(let t=0;t=0&&(e+=r[o])}e>=10?(e=e.toString(),m=e[e.length-1]+m,b=Number(e.slice(0,-1))):(m=e+m,b=0)}if(0===s)m=m.replace(/^0+/,\"\");else{const t=m.length-s;m=m.substring(0,t)+\".\"+m.substring(t),m=m.replace(/^0+/,\"\"),m=m.replace(/\\.?0+$/,\"\"),\".\"===m[0]&&(m=\"0\"+m)}return m}},function(t,e,r){const n=r(18),i=r(38),o=r(96),s=r(97);function a(t,e){t=n(t),e=n(e);const r=\"-\"!==t[0],a=\"-\"!==e[0];if(r){if(a){const r=i(t,e);return\">\"===r?s(t,e):\"<\"===r?\"-\"+s(e,t):\"0\"}return o(t,e.substring(1))}if(a)return\"-\"+o(t.substring(1),e);{t=t.substring(1),e=e.substring(1);const r=i(t,e);return\">\"===r?\"-\"+s(t,e):\"<\"===r?s(e,t):\"0\"}}t.exports=a,t.exports.default=a},function(t,e){const r=[\"5\",\"6\",\"7\",\"8\",\"9\"];t.exports=function(t){\"+\"===t[0]&&(t=t.substring(1));const e=t.length;let n=\"\";const i=t[t.length-1];if(r.includes(i)){let r;for(r=e-2;r>=0;r--){const e=t[r];if(\".\"===e||\"-\"===e)continue;const i=Number(e)+1;if(10!==i){n=i+n;break}n=\"0\"+n}r>0&&(n=t.substring(0,r)+n)}else n=t.substring(0,e-1);return\".\"===n[n.length-1]&&(n=n.substring(0,n.length-1)),n.indexOf(\".\")>-1&&(n=n.replace(/0+$/,\"\")),n}},function(t,e,r){const n=r(94);function i({nums:t,no_data:e,precise:r=!1}){switch((t=t.filter(t=>t!==e).sort((t,e)=>t-e)).length){case 0:return;case 1:return r?t[0].toString():t[0];default:const e=t.length/2;if(t.length%2==0)return n(t[e-1],t[e],{precise:r});{const n=Math.floor(e);return r?t[n].toString():t[n]}}}t.exports=i,t.exports.default=i},function(t,e,r){var n;const i=r(193);function o({bands:t,data:e,height:r,layout:n,width:o}){const s=i(e);if(\"[row,column,band]\"===n||1===s)return{layout:\"[row,column,band]\",bands:t||(r&&o?e.length/(r*o):void 0),height:r||(t&&o?e.length/(t*o):void 0),width:o||(t&&r?e.length/(t*r):void 0)};if(2===s){if(!r||!o)return e.lengthArray.isArray(t)||t instanceof Int8Array||t instanceof Uint8Array||t instanceof Uint8ClampedArray||t instanceof Int16Array||t instanceof Uint16Array||t instanceof Int32Array||t instanceof Uint32Array||t instanceof Float32Array||t instanceof Float64Array||t instanceof BigInt64Array||t instanceof BigUint64Array;let r=0,n=t;for(;e(n);)r++,n=n[0];return r}},function(t,e,r){const n={},{wrapNextFunction:i}=r(72),o=r(195),s=r(196),a={Array:Array,Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:Uint8ClampedArray,Int16Array:Int16Array,Uint16Array:Uint16Array,Float32Array:Float32Array,Float64Array:Float64Array};try{a.BigInt64Array=BigInt64Array,a.BigUint64Array=BigUint64Array}catch(t){}const u=t=>t.match(/\\[[^\\]]+\\]/g),c=t=>t.startsWith(\"[\")&&t.endsWith(\"]\")?t.substring(1,t.length-1):t,l=t=>t.startsWith(\"(\")&&t.endsWith(\")\")?t.substring(1,t.length-1):t,f=t=>t.match(/(\\(.*?\\)|[^\\(,\\s]+)(?=\\s*,|\\s*$)/g),h=t=>{t=c(t),t=l(t);const e=f(t);return 1===e.length?{type:\"Vector\",dim:e[0]}:{type:\"Matrix\",parts:e.map(h)}};function d(t){const e=t.match(/[^ A-Za-z,\\[\\]]/g);if(e)throw new Error(\"The following invalid characters were used: \"+e.map(t=>`\"${t}\"`).join(\", \"));return!0}function p(t,{useLayoutCache:e=!0}={useLayoutCache:!0}){if(e&&t in n)return n[t];d(t);const r=u(t).map(h),i={type:\"Layout\",summary:r.map(t=>\"Matrix\"===t.type?t.parts.length:1),dims:r};return e&&(n[t]=i),i}function y({useLayoutCache:t=!0,data:e,layout:r,sizes:n={}}){\"string\"==typeof r&&(r=p(r,{useLayoutCache:t}));const{dims:i}=r,o=i.length,a=m({useLayoutCache:t,layout:r,sizes:n}),u=o-1,c=r.summary.toString();if(c in s){const t={data:e};return r.dims.map((e,r)=>{\"Vector\"===e.type?t[`d${r}v0`]=e.dim:\"Matrix\"===e.type&&e.parts.forEach((e,n)=>{t[`d${r}v${n}`]=e.dim,t[`m${r}v${n}`]=a[e.dim]})}),s[c].bind(t)}return({point:t,value:r})=>{let n=e;for(let e=0;ee+a[r]*t[r],0),o?n[c]=r:n=n[c]}}}function g({rect:t={}}){if(t)for(let e in t){const r=t[e];if(2!==r.length)throw new Error(\"[xdim] uh oh. invalid hyper-rectangle\");const[n,i]=r;if(n>i)throw new Error(`[xdim] uh oh. invalid range for \"${e}\". Start of ${n} can't be greater than end of ${i}.`);if(n<0)throw new Error(\"[xdim] uh oh. invalid hyper-rectangle with start \"+n)}}function m({useLayoutCache:t=!0,layout:e,sizes:r}){\"string\"==typeof e&&(e=p(e,{useLayoutCache:t}));const{dims:n}=e,i=n.length;let o={};for(let t=0;t=0;e--){const{dim:i}=t[e];o[i]=n,n*=r[t[e].dim]}}}return o}function b({useLayoutCache:t=!0,data:e,layout:r,point:n,sizes:i={}}){let o,s;\"string\"==typeof r&&(r=p(r,{useLayoutCache:t}));let a=e;const{dims:u}=r,c=u.length;for(let t=0;t=0;e--){const o=t[e];if(\"Vector\"===o.type){const{dim:t}=o;if(r+=u*n[t],e>0){if(!(t in i))throw new Error(`you cannot calculate the location without knowing the size of the \"${t}\" dimension.`);u*=i[t]}}}o=a,s=r,a=a[r]}}return{index:s,value:a,parent:o}}function v({arr:t,fill:e,lens:r,arrayTypes:n}){if(0===r.length)return t;const i=r[0];if(1===r.length){const r=n?n[n.length-1]:\"Array\";for(let n=0;n\"Vector\"===t.type?n[t.dim]:\"Matrix\"===t.type?t.parts.reduce((t,e)=>{if(!(e.dim in n))throw new Error(`[xdim] could not find \"${e.dim}\" in sizes: { ${Object.keys(n).join(\", \")} }`);return t*n[e.dim]},1):void 0);return{data:w({fill:t,shape:o,arrayTypes:i}),shape:o,arrayTypes:i}}function _({start:t=0,end:e=100}){let r=t-1;return e+=1,i((function(){return r++,r===e?{done:!0}:{done:!1,value:r}}))}function S({order:t,sizes:e,rect:r={}}){const n=Array.isArray(t)?t:Object.keys(e).sort((t,r)=>e[t]-e[r]),o=new Array(n.length),s={};for(let t=0;t=0;t--){const{value:i,done:a}=o[t].next();if(!a){for(let i=t+1;i{\"Vector\"===e.type?t[`d${r}v0`]=e.dim:\"Matrix\"===e.type&&e.parts.forEach((e,n)=>{t[`d${r}v${n}`]=e.dim,t[`m${r}v${n}`]=a[e.dim]})}),o[c].bind(t)}return({point:t})=>{let r=e;for(let e=0;ee+a[r]*t[r],0),n)return{index:s,parent:r,value:r[s]};r=r[s]}}},prepareUpdate:y,removeBraces:c,removeParentheses:l,select:b,transform:function({data:t,fill:e,from:r,to:n,sizes:i,useLayoutCache:o=!0}){\"string\"==typeof r&&(r=p(r,{useLayoutCache:o})),\"string\"==typeof n&&(n=p(n,{useLayoutCache:o}));const{data:s}=x({fill:e,layout:n,sizes:i}),a=y({useLayoutCache:o,data:s,layout:n,sizes:i}),u=S({sizes:i});for(point of u){const{value:e}=b({data:t,layout:r,point:point,sizes:i});a({point:point,value:e})}return{data:s}},update:function({useLayoutCache:t=!0,data:e,layout:r,point:n,sizes:i={},value:o}){\"string\"==typeof r&&(r=p(r,{useLayoutCache:t}));const{dims:s}=r;for(let t=0;t=0;r--){const o=t[r],{dim:s}=o;if(u+=e*n[s],r>0){if(!(s in i))throw new Error(`you cannot calculate the location without knowing the size of the \"${s}\" dimension.`);e*=i[s]}}}r?e[u]=o:e=e[u]}},clip:function({useLayoutCache:t=!0,data:e,layout:r,rect:n,sizes:i={},flat:o=!1,validate:s=!0}){s&&g({rect:n}),\"string\"==typeof r&&(r=p(r,{useLayoutCache:t}));let a=[e];if(r.dims.forEach(t=>{let e=[];a.forEach(r=>{if(\"Vector\"===t.type){const[i,o]=n[t.dim];e=e.concat(r.slice(i,o+1))}else{const{parts:o}=t;let s=[0],a=1;for(let t=o.length-1;t>=0;t--){const e=o[t],{dim:r}=e,[u,c]=n[r],l=[];for(let t=u;t<=c;t++)s.forEach(e=>{l.push(e+a*t)});s=l,a*=i[r]}s.forEach(t=>{e.push(r[t])})}}),a=e}),o)return{data:a};const u=Object.fromEntries(Object.entries(n).map(([t,[e,r]])=>[t,r-e+1])),{data:c}=x({layout:r,sizes:u}),l=r.dims.length,f=(t,e)=>{if(e===l)for(let e=0;ef(t,e+1))};return f(c,1),{data:c}},validateRect:g}},function(t,e){t.exports={1:function({point:t}){const e=this.data,r=t[this.d0v0];return{parent:e,index:r,value:e[r]}},2:function({point:t}){const e=this.data,r=this.m0v0*t[this.d0v0]+this.m0v1*t[this.d0v1];return{parent:e,index:r,value:e[r]}},3:function({point:t}){const e=this.data,r=this.m0v0*t[this.d0v0]+this.m0v1*t[this.d0v1]+this.m0v2*t[this.d0v2];return{parent:e,index:r,value:e[r]}},4:function({point:t}){const e=this.data,r=this.m0v0*t[this.d0v0]+this.m0v1*t[this.d0v1]+this.m0v2*t[this.d0v2]+this.m0v3*t[this.d0v3];return{parent:e,index:r,value:e[r]}},5:function({point:t}){const e=this.data,r=this.m0v0*t[this.d0v0]+this.m0v1*t[this.d0v1]+this.m0v2*t[this.d0v2]+this.m0v3*t[this.d0v3]+this.m0v4*t[this.d0v4];return{parent:e,index:r,value:e[r]}},\"1,1\":function({point:t}){const e=this.data[t[this.d0v0]],r=t[this.d1v0];return{parent:e,index:r,value:e[r]}},\"1,2\":function({point:t}){const e=this.data[t[this.d0v0]],r=this.m1v0*t[this.d1v0]+this.m1v1*t[this.d1v1];return{parent:e,index:r,value:e[r]}},\"1,3\":function({point:t}){const e=this.data[t[this.d0v0]],r=this.m1v0*t[this.d1v0]+this.m1v1*t[this.d1v1]+this.m1v2*t[this.d1v2];return{parent:e,index:r,value:e[r]}},\"1,4\":function({point:t}){const e=this.data[t[this.d0v0]],r=this.m1v0*t[this.d1v0]+this.m1v1*t[this.d1v1]+this.m1v2*t[this.d1v2]+this.m1v3*t[this.d1v3];return{parent:e,index:r,value:e[r]}},\"1,5\":function({point:t}){const e=this.data[t[this.d0v0]],r=this.m1v0*t[this.d1v0]+this.m1v1*t[this.d1v1]+this.m1v2*t[this.d1v2]+this.m1v3*t[this.d1v3]+this.m1v4*t[this.d1v4];return{parent:e,index:r,value:e[r]}},\"1,1,1\":function({point:t}){const e=this.data[t[this.d0v0]][t[this.d1v0]],r=t[this.d2v0];return{parent:e,index:r,value:e[r]}},\"1,1,2\":function({point:t}){const e=this.data[t[this.d0v0]][t[this.d1v0]],r=this.m2v0*t[this.d2v0]+this.m2v1*t[this.d2v1];return{parent:e,index:r,value:e[r]}},\"1,1,3\":function({point:t}){const e=this.data[t[this.d0v0]][t[this.d1v0]],r=this.m2v0*t[this.d2v0]+this.m2v1*t[this.d2v1]+this.m2v2*t[this.d2v2];return{parent:e,index:r,value:e[r]}},\"1,1,4\":function({point:t}){const e=this.data[t[this.d0v0]][t[this.d1v0]],r=this.m2v0*t[this.d2v0]+this.m2v1*t[this.d2v1]+this.m2v2*t[this.d2v2]+this.m2v3*t[this.d2v3];return{parent:e,index:r,value:e[r]}},\"1,1,5\":function({point:t}){const e=this.data[t[this.d0v0]][t[this.d1v0]],r=this.m2v0*t[this.d2v0]+this.m2v1*t[this.d2v1]+this.m2v2*t[this.d2v2]+this.m2v3*t[this.d2v3]+this.m2v4*t[this.d2v4];return{parent:e,index:r,value:e[r]}},\"1,1,1,1\":function({point:t}){const e=this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]],r=t[this.d3v0];return{parent:e,index:r,value:e[r]}},\"1,1,1,2\":function({point:t}){const e=this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]],r=this.m3v0*t[this.d3v0]+this.m3v1*t[this.d3v1];return{parent:e,index:r,value:e[r]}},\"1,1,1,3\":function({point:t}){const e=this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]],r=this.m3v0*t[this.d3v0]+this.m3v1*t[this.d3v1]+this.m3v2*t[this.d3v2];return{parent:e,index:r,value:e[r]}},\"1,1,1,4\":function({point:t}){const e=this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]],r=this.m3v0*t[this.d3v0]+this.m3v1*t[this.d3v1]+this.m3v2*t[this.d3v2]+this.m3v3*t[this.d3v3];return{parent:e,index:r,value:e[r]}},\"1,1,1,5\":function({point:t}){const e=this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]],r=this.m3v0*t[this.d3v0]+this.m3v1*t[this.d3v1]+this.m3v2*t[this.d3v2]+this.m3v3*t[this.d3v3]+this.m3v4*t[this.d3v4];return{parent:e,index:r,value:e[r]}},\"1,1,1,1,1\":function({point:t}){const e=this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]][t[this.d3v0]],r=t[this.d4v0];return{parent:e,index:r,value:e[r]}},\"1,1,1,1,2\":function({point:t}){const e=this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]][t[this.d3v0]],r=this.m4v0*t[this.d4v0]+this.m4v1*t[this.d4v1];return{parent:e,index:r,value:e[r]}},\"1,1,1,1,3\":function({point:t}){const e=this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]][t[this.d3v0]],r=this.m4v0*t[this.d4v0]+this.m4v1*t[this.d4v1]+this.m4v2*t[this.d4v2];return{parent:e,index:r,value:e[r]}},\"1,1,1,1,4\":function({point:t}){const e=this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]][t[this.d3v0]],r=this.m4v0*t[this.d4v0]+this.m4v1*t[this.d4v1]+this.m4v2*t[this.d4v2]+this.m4v3*t[this.d4v3];return{parent:e,index:r,value:e[r]}},\"1,1,1,1,5\":function({point:t}){const e=this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]][t[this.d3v0]],r=this.m4v0*t[this.d4v0]+this.m4v1*t[this.d4v1]+this.m4v2*t[this.d4v2]+this.m4v3*t[this.d4v3]+this.m4v4*t[this.d4v4];return{parent:e,index:r,value:e[r]}}}},function(t,e){t.exports={1:function({point:t,value:e}){this.data[t[this.d0v0]]=e},2:function({point:t,value:e}){this.data[this.m0v0*t[this.d0v0]+this.m0v1*t[this.d0v1]]=e},3:function({point:t,value:e}){this.data[this.m0v0*t[this.d0v0]+this.m0v1*t[this.d0v1]+this.m0v2*t[this.d0v2]]=e},4:function({point:t,value:e}){this.data[this.m0v0*t[this.d0v0]+this.m0v1*t[this.d0v1]+this.m0v2*t[this.d0v2]+this.m0v3*t[this.d0v3]]=e},5:function({point:t,value:e}){this.data[this.m0v0*t[this.d0v0]+this.m0v1*t[this.d0v1]+this.m0v2*t[this.d0v2]+this.m0v3*t[this.d0v3]+this.m0v4*t[this.d0v4]]=e},\"1,1\":function({point:t,value:e}){this.data[t[this.d0v0]][t[this.d1v0]]=e},\"1,2\":function({point:t,value:e}){this.data[t[this.d0v0]][this.m1v0*t[this.d1v0]+this.m1v1*t[this.d1v1]]=e},\"1,3\":function({point:t,value:e}){this.data[t[this.d0v0]][this.m1v0*t[this.d1v0]+this.m1v1*t[this.d1v1]+this.m1v2*t[this.d1v2]]=e},\"1,4\":function({point:t,value:e}){this.data[t[this.d0v0]][this.m1v0*t[this.d1v0]+this.m1v1*t[this.d1v1]+this.m1v2*t[this.d1v2]+this.m1v3*t[this.d1v3]]=e},\"1,5\":function({point:t,value:e}){this.data[t[this.d0v0]][this.m1v0*t[this.d1v0]+this.m1v1*t[this.d1v1]+this.m1v2*t[this.d1v2]+this.m1v3*t[this.d1v3]+this.m1v4*t[this.d1v4]]=e},\"1,1,1\":function({point:t,value:e}){this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]]=e},\"1,1,2\":function({point:t,value:e}){this.data[t[this.d0v0]][t[this.d1v0]][this.m2v0*t[this.d2v0]+this.m2v1*t[this.d2v1]]=e},\"1,1,3\":function({point:t,value:e}){this.data[t[this.d0v0]][t[this.d1v0]][this.m2v0*t[this.d2v0]+this.m2v1*t[this.d2v1]+this.m2v2*t[this.d2v2]]=e},\"1,1,4\":function({point:t,value:e}){this.data[t[this.d0v0]][t[this.d1v0]][this.m2v0*t[this.d2v0]+this.m2v1*t[this.d2v1]+this.m2v2*t[this.d2v2]+this.m2v3*t[this.d2v3]]=e},\"1,1,5\":function({point:t,value:e}){this.data[t[this.d0v0]][t[this.d1v0]][this.m2v0*t[this.d2v0]+this.m2v1*t[this.d2v1]+this.m2v2*t[this.d2v2]+this.m2v3*t[this.d2v3]+this.m2v4*t[this.d2v4]]=e},\"1,1,1,1\":function({point:t,value:e}){this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]][t[this.d3v0]]=e},\"1,1,1,2\":function({point:t,value:e}){this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]][this.m3v0*t[this.d3v0]+this.m3v1*t[this.d3v1]]=e},\"1,1,1,3\":function({point:t,value:e}){this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]][this.m3v0*t[this.d3v0]+this.m3v1*t[this.d3v1]+this.m3v2*t[this.d3v2]]=e},\"1,1,1,4\":function({point:t,value:e}){this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]][this.m3v0*t[this.d3v0]+this.m3v1*t[this.d3v1]+this.m3v2*t[this.d3v2]+this.m3v3*t[this.d3v3]]=e},\"1,1,1,5\":function({point:t,value:e}){this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]][this.m3v0*t[this.d3v0]+this.m3v1*t[this.d3v1]+this.m3v2*t[this.d3v2]+this.m3v3*t[this.d3v3]+this.m3v4*t[this.d3v4]]=e},\"1,1,1,1,1\":function({point:t,value:e}){this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]][t[this.d3v0]][t[this.d4v0]]=e},\"1,1,1,1,2\":function({point:t,value:e}){this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]][t[this.d3v0]][this.m4v0*t[this.d4v0]+this.m4v1*t[this.d4v1]]=e},\"1,1,1,1,3\":function({point:t,value:e}){this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]][t[this.d3v0]][this.m4v0*t[this.d4v0]+this.m4v1*t[this.d4v1]+this.m4v2*t[this.d4v2]]=e},\"1,1,1,1,4\":function({point:t,value:e}){this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]][t[this.d3v0]][this.m4v0*t[this.d4v0]+this.m4v1*t[this.d4v1]+this.m4v2*t[this.d4v2]+this.m4v3*t[this.d4v3]]=e},\"1,1,1,1,5\":function({point:t,value:e}){this.data[t[this.d0v0]][t[this.d1v0]][t[this.d2v0]][t[this.d3v0]][this.m4v0*t[this.d4v0]+this.m4v1*t[this.d4v1]+this.m4v2*t[this.d4v2]+this.m4v3*t[this.d4v3]+this.m4v4*t[this.d4v4]]=e}}},function(t,e,r){\"use strict\";function n(t,e){if(\"undefined\"==typeof ImageData)throw\"toCanvas is not supported in your environment\";{const r=document.createElement(\"CANVAS\"),n=e&&e.height?Math.min(t.height,e.height):Math.min(t.height,100),i=e&&e.width?Math.min(t.width,e.width):Math.min(t.width,100);r.height=n,r.width=i,r.style.minHeight=\"200px\",r.style.minWidth=\"400px\",r.style.maxWidth=\"100%\";const o=r.getContext(\"2d\"),s=function(t,e,r){if(t.values){const{noDataValue:n,mins:i,ranges:o,values:s}=t,a=s.length,u=t.width/e,c=t.height/r,l=new Uint8ClampedArray(e*r*4);for(let t=0;t{try{return t[f][h]}catch(t){console.error(t)}});if(d.every(t=>void 0!==t&&t!==n)){const n=t*(4*e)+4*r;if(1===a){const t=Math.round(d[0]),e=Math.round((t-i[0])/o[0]*255);l[n]=e,l[n+1]=e,l[n+2]=e,l[n+3]=255}else if(3===a)try{const[t,e,r]=d;l[n]=t,l[n+1]=e,l[n+2]=r,l[n+3]=255}catch(t){console.error(t)}else if(4===a)try{const[t,e,r,i]=d;l[n]=t,l[n+1]=e,l[n+2]=r,l[n+3]=i}catch(t){console.error(t)}}}return new ImageData(l,e,r)}}(t,i,n);return o.putImageData(s,0,0),r}}r.r(e),r.d(e,\"default\",(function(){return n}))},function(t,e,r){\"use strict\";r.d(e,\"a\",(function(){return i}));var n=r(19);Object(n.b)().blob;const i=Object(n.b)().default},,,function(t,e,r){\"use strict\";var n=r(26),i=r(103);var o=function(t){\"function\"==typeof t?t():t&&\"function\"==typeof t.unsubscribe&&t.unsubscribe()};e.a=function(t){const e=new i.a;let r,s=0;return new n.a(n=>{r||(r=t.subscribe(e));const i=e.subscribe(n);return s++,()=>{s--,i.unsubscribe(),0===s&&(o(r),r=void 0)}})}}])}));","module.exports = function getDepth(arr) {\n const isArray = (arr) =>\n Array.isArray(arr) ||\n arr instanceof Int8Array ||\n arr instanceof Uint8Array ||\n arr instanceof Uint8ClampedArray ||\n arr instanceof Int16Array ||\n arr instanceof Uint16Array ||\n arr instanceof Int32Array ||\n arr instanceof Uint32Array ||\n arr instanceof Float32Array ||\n arr instanceof Float64Array ||\n arr instanceof BigInt64Array ||\n arr instanceof BigUint64Array;\n\n let depth = 0;\n let part = arr;\n while (isArray(part)) {\n depth++;\n part = part[0];\n }\n return depth;\n};\n","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):\"object\"==typeof exports?exports[\"get-epsg-code\"]=e():t[\"get-epsg-code\"]=e()}(\"undefined\"!=typeof self?self:this,(function(){return function(t){var e={};function o(r){if(e[r])return e[r].exports;var n=e[r]={i:r,l:!1,exports:{}};return t[r].call(n.exports,n,n.exports,o),n.l=!0,n.exports}return o.m=t,o.c=e,o.d=function(t,e,r){o.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},o.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},o.t=function(t,e){if(1&e&&(t=o(t)),8&e)return t;if(4&e&&\"object\"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(o.r(r),Object.defineProperty(r,\"default\",{enumerable:!0,value:t}),2&e&&\"string\"!=typeof t)for(var n in t)o.d(r,n,function(e){return t[e]}.bind(null,n));return r},o.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return o.d(e,\"a\",e),e},o.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},o.p=\"\",o(o.s=1)}([function(t,e,o){const r=o(5);t.exports=function(t,e,o){const n=o&&o.debug||!1,a=o&&o.startIndex||0;n&&console.log(\"starting findTag with\",e,\" and \",o);const i=r(t,`<${e}[ >]`,a);if(n&&console.log(\"start:\",i),-1===i)return;const s=i+e.length+r(t.slice(i+e.length),\"[ /]\"+e+\">\",0)+1+e.length+1;if(n&&console.log(\"end:\",s),-1===s)return;const C=t.slice(i,s);return{inner:C.slice(C.indexOf(\">\")+1,C.lastIndexOf(\"<\")),outer:C,start:i,end:s}}},function(t,e,o){var r=o(2),n=o(0),a=o(6),i=o(12).default,s=o(7),C=o(8),E=(C.ARRAY_TYPE,C.EXCLUDED_FORMATS),d=C.BYTES_PER_VALUE,f=C.DATA_VIEW_READER_NAME,D=C.FORMATS,c=C.HASHED_FIELDS,g=C.NUM_FIELDS,l=(C.NUM_HASHED_FIELDS,C.UNSUPPORTED_MSG),p=D.ESRI_WKT,A=D.GEOSERVER,u=D.MAPFILE,Q=D.MAPNIK,h=D.OGC_GML,R=D.OGC_XML,G=D.OGC_WKT,I=D.POSTGIS,x=D.PROJ_4,w=D.PROJ_4_JS,M=o(9),m=new DataView(M),B=o(11).hash,F=[\"PROJECTEDCRS\",\"PROJCRS\",\"GEOGCS\",\"GEOCCS\",\"PROJCS\",\"LOCAL_CS\",\"GEODCRS\",\"GEODETICCRS\",\"GEODETICDATUM\",\"ENGCRS\",\"ENGINEERINGCRS\"];function O(t){return function(t){return!(!(t=t.trim()).startsWith(\"PROJCS[\")&&!t.startsWith(\"GEOGCS[\"))&&F.some((function(e){return t.includes(e)}))}(t)?t.includes(\"AUTHORITY\")?G:p:t.includes(\"gml:ProjectedCRS\")||t.includes(\"gml:GeodeticCRS\")||t.includes(\"gml:GeographicCRS\")?t.includes(\"gml:srsID\")?R:h:t.startsWith(\"+proj=\")?x:t.startsWith('proj4.defs(\"EPSG:')?w:/^\\d{1,6}\\=(PROJCS|GEOGCS)/.test(t)?A:t.startsWith(\"PROJECTION\")&&t.endsWith(\"END\")?u:t.endsWith(\"\")?Q:t.startsWith(\"INSERT\")?I:\"SOMETHING ELSE\"}function k(t,e,o){o&&console.log(\"looking up \"+e);var r=B(t);o&&console.log(\"hashed:\",r);var n=c.indexOf(e)+1;o&&console.log(\"offset:\",n);for(var a=n*d;a0){if(d.forEach(t=>{t.start+=E.start,t.end+=E.start}),a&&t===e.length-1)return[d[0]];s=s.concat(d)}}i=s}return i}},function(t,e,o){const r=o(0);t.exports=function(t,e,o){const n=[],a=o&&o.debug||!1;let i,s=o&&o.startIndex||0;for(;i=r(t,e,{debug:a,startIndex:s});)s=i.end,n.push(i);return n}},function(t,e){t.exports=function(t,e,o){const r=new RegExp(e).exec(t.slice(o));return r?o+r.index:-1}},function(t,e){t.exports=function(t,e,o){const r=o&&o.debug||!1;r&&console.log(\"getting \"+e+\" in \"+t);const n=\"object\"==typeof t?t.outer:t,a=`${e}\\\\=\"(.*)\"`;r&&console.log(\"pattern:\",a);const i=new RegExp(a).exec(n);if(i)return i[1]}},function(t,e){t.exports=function(t){return t=(t=t.replace('DATUM[\"D_','DATUM[\"')).replace(/\\.\\d{16,}/g,(function(t){return t.substr(0,16)}))}},function(t,e){var o=[\"esriwkt\",\"mapfile\",\"proj4\"],r=o;\"undefined\"!=typeof process&&process.env;var n=[];\"undefined\"!=typeof process&&process.env,r.includes(\"esriwkt\")||n.push(\"esriwkt\"),r.includes(\"mapfile\")||n.push(\"mapfile\"),r.includes(\"proj4\")||(n.push(\"mapnik\"),n.push(\"proj4\")),n.sort();var a=r.length,i=a+1,s=Int16Array;t.exports={ARRAY_TYPE:s,DATA_VIEW_READER_NAME:\"getInt16\",BYTES_PER_VALUE:2,DEFAULT_HASHED_FIELDS:o,EXCLUDED_FORMATS:n,FORMATS:{ESRI_WKT:\"esriwkt\",GEOSERVER:\"geoserver\",MAPFILE:\"mapfile\",MAPNIK:\"mapnik\",OGC_GML:\"gml\",OGC_XML:\"xml\",OGC_WKT:\"wkt\",POSTGIS:\"postgis\",PROJ_4:\"proj4\",PROJ_4_JS:\"js\"},HASHED_FIELDS:r,NUM_HASHED_FIELDS:a,NUM_FIELDS:i,UNSUPPORTED_MSG:\"[get-epsg-code] {} format not supported\"}},function(t,e,o){t.exports=o(10)(\"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\")},function(t,e,o){\"use strict\";t.exports=function(t){for(var e=\"undefined\"!=typeof window&&\"function\"==typeof window.atob?window.atob(t):Buffer.from(t,\"base64\").toString(\"binary\"),o=new Uint8Array(e.length),r=0;r=this.text.length)return;t=this.text[this.place++]}switch(this.state){case 1:return this.neutral(t);case 2:return this.keyword(t);case 4:return this.quoted(t);case 5:return this.afterquote(t);case 3:return this.number(t);case-1:return}},E.prototype.afterquote=function(t){if('\"'===t)return this.word+='\"',void(this.state=4);if(s.test(t))return this.word=this.word.trim(),void this.afterItem(t);throw new Error(\"havn't handled \\\"\"+t+'\" in afterquote yet, index '+this.place)},E.prototype.afterItem=function(t){return\",\"===t?(null!==this.word&&this.currentObject.push(this.word),this.word=null,void(this.state=1)):\"]\"===t?(this.level--,null!==this.word&&(this.currentObject.push(this.word),this.word=null),this.state=1,this.currentObject=this.stack.pop(),void(this.currentObject||(this.state=-1))):void 0},E.prototype.number=function(t){if(!C.test(t)){if(s.test(t))return this.word=parseFloat(this.word),void this.afterItem(t);throw new Error(\"havn't handled \\\"\"+t+'\" in number yet, index '+this.place)}this.word+=t},E.prototype.quoted=function(t){'\"'!==t?this.word+=t:this.state=5},E.prototype.keyword=function(t){if(i.test(t))this.word+=t;else{if(\"[\"===t){var e=[];return e.push(this.word),this.level++,null===this.root?this.root=e:this.currentObject.push(e),this.stack.push(this.currentObject),this.currentObject=e,void(this.state=1)}if(!s.test(t))throw new Error(\"havn't handled \\\"\"+t+'\" in keyword yet, index '+this.place);this.afterItem(t)}},E.prototype.neutral=function(t){if(a.test(t))return this.word=t,void(this.state=2);if('\"'===t)return this.word=\"\",void(this.state=4);if(C.test(t))return this.word=t,void(this.state=3);if(!s.test(t))throw new Error(\"havn't handled \\\"\"+t+'\" in neutral yet, index '+this.place);this.afterItem(t)},E.prototype.output=function(){for(;this.place0?90:-90),t.lat_ts=t.lat1)}(a),a}}])}));\n//# sourceMappingURL=get-epsg-code-all.node.min.js.map","function addSymbolIterator(obj) {\n try {\n obj[Symbol.iterator] = function () {\n return this;\n };\n } catch (error) {\n // pass\n }\n}\n\nfunction addSymbolIteratorFallback(obj) {\n obj[\"@@iterator\"] = function () {\n return this;\n };\n}\n\nfunction wrapNextFunction(next) {\n const iter = { next };\n addSymbolIterator(iter);\n addSymbolIteratorFallback(iter);\n return iter;\n}\n\nfunction isArray(data) {\n try {\n return data.constructor.name.endsWith(\"Array\");\n } catch {\n return false;\n }\n}\n\nfunction hasNext(data) {\n try {\n return typeof data.next === \"function\";\n } catch {\n return false;\n }\n}\n\nfunction hasIterator(data) {\n try {\n return \"@@iterator\" in data;\n } catch {\n return false;\n }\n}\n\nfunction hasSymbolIterator(data) {\n try {\n return Symbol.iterator in data.constructor.prototype;\n } catch {\n return false;\n }\n}\n\nfunction isIterator(data) {\n try {\n return (\n Symbol.iterator in data &&\n typeof data.next === \"function\" &&\n data.propertyIsEnumerable(\"next\") === false\n );\n } catch {\n return false;\n }\n}\n\nfunction getIterator(data) {\n const iter = data[\"@@iterator\"];\n if (hasNext(iter)) {\n return iter;\n } else if (typeof iter === \"function\") {\n return iter();\n }\n}\n\nfunction createIterator(data) {\n let i = 0;\n let len = data.length;\n const next = () =>\n i++ < len ? { value: data[i], done: false } : { done: true };\n return wrapNextFunction(next);\n}\n\nfunction getOrCreateIterator(data) {\n if (isIterator(data)) {\n return data;\n } else if (hasSymbolIterator(data)) {\n return data[Symbol.iterator]();\n } else if (hasNext(data)) {\n return wrapNextFunction(data.next);\n } else if (hasIterator(data)) {\n return getIterator(data);\n } else if (typeof data === \"string\" || isArray(data)) {\n return createIterator(data);\n } else {\n throw \"[iter-fun] unable to determine iterator\";\n }\n}\n\nfunction zip(iters) {\n // convert input to iters just in case\n iters = iters.map(getOrCreateIterator);\n\n return wrapNextFunction(function next() {\n const values = iters.map(iter => iter.next());\n // if they are all done, stop\n if (values.every(({ done }) => done)) {\n return { done: true };\n } else {\n return {\n done: false,\n value: values.map(({ value }) => value)\n };\n }\n });\n}\n\nif (typeof module === \"object\") {\n module.exports = {\n addSymbolIterator,\n addSymbolIteratorFallback,\n isIterator,\n isArray,\n hasNext,\n hasSymbolIterator,\n hasIterator,\n getIterator,\n createIterator,\n getOrCreateIterator,\n wrapNextFunction,\n zip\n };\n}\n","L.Control.Fullscreen = L.Control.extend({\n options: {\n position: 'topleft',\n title: {\n 'false': 'View Fullscreen',\n 'true': 'Exit Fullscreen'\n }\n },\n\n onAdd: function (map) {\n var container = L.DomUtil.create('div', 'leaflet-control-fullscreen leaflet-bar leaflet-control');\n\n this.link = L.DomUtil.create('a', 'leaflet-control-fullscreen-button leaflet-bar-part', container);\n this.link.href = '#';\n\n this._map = map;\n this._map.on('fullscreenchange', this._toggleTitle, this);\n this._toggleTitle();\n\n L.DomEvent.on(this.link, 'click', this._click, this);\n\n return container;\n },\n\n _click: function (e) {\n L.DomEvent.stopPropagation(e);\n L.DomEvent.preventDefault(e);\n this._map.toggleFullscreen(this.options);\n },\n\n _toggleTitle: function() {\n this.link.title = this.options.title[this._map.isFullscreen()];\n }\n});\n\nL.Map.include({\n isFullscreen: function () {\n return this._isFullscreen || false;\n },\n\n toggleFullscreen: function (options) {\n var container = this.getContainer();\n if (this.isFullscreen()) {\n if (options && options.pseudoFullscreen) {\n this._disablePseudoFullscreen(container);\n } else if (document.exitFullscreen) {\n document.exitFullscreen();\n } else if (document.mozCancelFullScreen) {\n document.mozCancelFullScreen();\n } else if (document.webkitCancelFullScreen) {\n document.webkitCancelFullScreen();\n } else if (document.msExitFullscreen) {\n document.msExitFullscreen();\n } else {\n this._disablePseudoFullscreen(container);\n }\n } else {\n if (options && options.pseudoFullscreen) {\n this._enablePseudoFullscreen(container);\n } else if (container.requestFullscreen) {\n container.requestFullscreen();\n } else if (container.mozRequestFullScreen) {\n container.mozRequestFullScreen();\n } else if (container.webkitRequestFullscreen) {\n container.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT);\n } else if (container.msRequestFullscreen) {\n container.msRequestFullscreen();\n } else {\n this._enablePseudoFullscreen(container);\n }\n }\n\n },\n\n _enablePseudoFullscreen: function (container) {\n L.DomUtil.addClass(container, 'leaflet-pseudo-fullscreen');\n this._setFullscreen(true);\n this.fire('fullscreenchange');\n },\n\n _disablePseudoFullscreen: function (container) {\n L.DomUtil.removeClass(container, 'leaflet-pseudo-fullscreen');\n this._setFullscreen(false);\n this.fire('fullscreenchange');\n },\n\n _setFullscreen: function(fullscreen) {\n this._isFullscreen = fullscreen;\n var container = this.getContainer();\n if (fullscreen) {\n L.DomUtil.addClass(container, 'leaflet-fullscreen-on');\n } else {\n L.DomUtil.removeClass(container, 'leaflet-fullscreen-on');\n }\n this.invalidateSize();\n },\n\n _onFullscreenChange: function (e) {\n var fullscreenElement =\n document.fullscreenElement ||\n document.mozFullScreenElement ||\n document.webkitFullscreenElement ||\n document.msFullscreenElement;\n\n if (fullscreenElement === this.getContainer() && !this._isFullscreen) {\n this._setFullscreen(true);\n this.fire('fullscreenchange');\n } else if (fullscreenElement !== this.getContainer() && this._isFullscreen) {\n this._setFullscreen(false);\n this.fire('fullscreenchange');\n }\n }\n});\n\nL.Map.mergeOptions({\n fullscreenControl: false\n});\n\nL.Map.addInitHook(function () {\n if (this.options.fullscreenControl) {\n this.fullscreenControl = new L.Control.Fullscreen(this.options.fullscreenControl);\n this.addControl(this.fullscreenControl);\n }\n\n var fullscreenchange;\n\n if ('onfullscreenchange' in document) {\n fullscreenchange = 'fullscreenchange';\n } else if ('onmozfullscreenchange' in document) {\n fullscreenchange = 'mozfullscreenchange';\n } else if ('onwebkitfullscreenchange' in document) {\n fullscreenchange = 'webkitfullscreenchange';\n } else if ('onmsfullscreenchange' in document) {\n fullscreenchange = 'MSFullscreenChange';\n }\n\n if (fullscreenchange) {\n var onFullscreenChange = L.bind(this._onFullscreenChange, this);\n\n this.whenReady(function () {\n L.DomEvent.on(document, fullscreenchange, onFullscreenChange);\n });\n\n this.on('unload', function () {\n L.DomEvent.off(document, fullscreenchange, onFullscreenChange);\n });\n }\n});\n\nL.control.fullscreen = function (options) {\n return new L.Control.Fullscreen(options);\n};\n","/* @preserve\n * Leaflet 1.9.4, a JS library for interactive maps. https://leafletjs.com\n * (c) 2010-2023 Vladimir Agafonkin, (c) 2010-2011 CloudMade\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.leaflet = {}));\n})(this, (function (exports) { 'use strict';\n\n var version = \"1.9.4\";\n\n /*\r\n * @namespace Util\r\n *\r\n * Various utility functions, used by Leaflet internally.\r\n */\r\n\r\n // @function extend(dest: Object, src?: Object): Object\r\n // Merges the properties of the `src` object (or multiple objects) into `dest` object and returns the latter. Has an `L.extend` shortcut.\r\n function extend(dest) {\r\n \tvar i, j, len, src;\r\n\r\n \tfor (j = 1, len = arguments.length; j < len; j++) {\r\n \t\tsrc = arguments[j];\r\n \t\tfor (i in src) {\r\n \t\t\tdest[i] = src[i];\r\n \t\t}\r\n \t}\r\n \treturn dest;\r\n }\r\n\r\n // @function create(proto: Object, properties?: Object): Object\r\n // Compatibility polyfill for [Object.create](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/create)\r\n var create$2 = Object.create || (function () {\r\n \tfunction F() {}\r\n \treturn function (proto) {\r\n \t\tF.prototype = proto;\r\n \t\treturn new F();\r\n \t};\r\n })();\r\n\r\n // @function bind(fn: Function, …): Function\r\n // Returns a new function bound to the arguments passed, like [Function.prototype.bind](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Function/bind).\r\n // Has a `L.bind()` shortcut.\r\n function bind(fn, obj) {\r\n \tvar slice = Array.prototype.slice;\r\n\r\n \tif (fn.bind) {\r\n \t\treturn fn.bind.apply(fn, slice.call(arguments, 1));\r\n \t}\r\n\r\n \tvar args = slice.call(arguments, 2);\r\n\r\n \treturn function () {\r\n \t\treturn fn.apply(obj, args.length ? args.concat(slice.call(arguments)) : arguments);\r\n \t};\r\n }\r\n\r\n // @property lastId: Number\r\n // Last unique ID used by [`stamp()`](#util-stamp)\r\n var lastId = 0;\r\n\r\n // @function stamp(obj: Object): Number\r\n // Returns the unique ID of an object, assigning it one if it doesn't have it.\r\n function stamp(obj) {\r\n \tif (!('_leaflet_id' in obj)) {\r\n \t\tobj['_leaflet_id'] = ++lastId;\r\n \t}\r\n \treturn obj._leaflet_id;\r\n }\r\n\r\n // @function throttle(fn: Function, time: Number, context: Object): Function\r\n // Returns a function which executes function `fn` with the given scope `context`\r\n // (so that the `this` keyword refers to `context` inside `fn`'s code). The function\r\n // `fn` will be called no more than one time per given amount of `time`. The arguments\r\n // received by the bound function will be any arguments passed when binding the\r\n // function, followed by any arguments passed when invoking the bound function.\r\n // Has an `L.throttle` shortcut.\r\n function throttle(fn, time, context) {\r\n \tvar lock, args, wrapperFn, later;\r\n\r\n \tlater = function () {\r\n \t\t// reset lock and call if queued\r\n \t\tlock = false;\r\n \t\tif (args) {\r\n \t\t\twrapperFn.apply(context, args);\r\n \t\t\targs = false;\r\n \t\t}\r\n \t};\r\n\r\n \twrapperFn = function () {\r\n \t\tif (lock) {\r\n \t\t\t// called too soon, queue to call later\r\n \t\t\targs = arguments;\r\n\r\n \t\t} else {\r\n \t\t\t// call and lock until later\r\n \t\t\tfn.apply(context, arguments);\r\n \t\t\tsetTimeout(later, time);\r\n \t\t\tlock = true;\r\n \t\t}\r\n \t};\r\n\r\n \treturn wrapperFn;\r\n }\r\n\r\n // @function wrapNum(num: Number, range: Number[], includeMax?: Boolean): Number\r\n // Returns the number `num` modulo `range` in such a way so it lies within\r\n // `range[0]` and `range[1]`. The returned value will be always smaller than\r\n // `range[1]` unless `includeMax` is set to `true`.\r\n function wrapNum(x, range, includeMax) {\r\n \tvar max = range[1],\r\n \t min = range[0],\r\n \t d = max - min;\r\n \treturn x === max && includeMax ? x : ((x - min) % d + d) % d + min;\r\n }\r\n\r\n // @function falseFn(): Function\r\n // Returns a function which always returns `false`.\r\n function falseFn() { return false; }\r\n\r\n // @function formatNum(num: Number, precision?: Number|false): Number\r\n // Returns the number `num` rounded with specified `precision`.\r\n // The default `precision` value is 6 decimal places.\r\n // `false` can be passed to skip any processing (can be useful to avoid round-off errors).\r\n function formatNum(num, precision) {\r\n \tif (precision === false) { return num; }\r\n \tvar pow = Math.pow(10, precision === undefined ? 6 : precision);\r\n \treturn Math.round(num * pow) / pow;\r\n }\r\n\r\n // @function trim(str: String): String\r\n // Compatibility polyfill for [String.prototype.trim](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim)\r\n function trim(str) {\r\n \treturn str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\r\n }\r\n\r\n // @function splitWords(str: String): String[]\r\n // Trims and splits the string on whitespace and returns the array of parts.\r\n function splitWords(str) {\r\n \treturn trim(str).split(/\\s+/);\r\n }\r\n\r\n // @function setOptions(obj: Object, options: Object): Object\r\n // Merges the given properties to the `options` of the `obj` object, returning the resulting options. See `Class options`. Has an `L.setOptions` shortcut.\r\n function setOptions(obj, options) {\r\n \tif (!Object.prototype.hasOwnProperty.call(obj, 'options')) {\r\n \t\tobj.options = obj.options ? create$2(obj.options) : {};\r\n \t}\r\n \tfor (var i in options) {\r\n \t\tobj.options[i] = options[i];\r\n \t}\r\n \treturn obj.options;\r\n }\r\n\r\n // @function getParamString(obj: Object, existingUrl?: String, uppercase?: Boolean): String\r\n // Converts an object into a parameter URL string, e.g. `{a: \"foo\", b: \"bar\"}`\r\n // translates to `'?a=foo&b=bar'`. If `existingUrl` is set, the parameters will\r\n // be appended at the end. If `uppercase` is `true`, the parameter names will\r\n // be uppercased (e.g. `'?A=foo&B=bar'`)\r\n function getParamString(obj, existingUrl, uppercase) {\r\n \tvar params = [];\r\n \tfor (var i in obj) {\r\n \t\tparams.push(encodeURIComponent(uppercase ? i.toUpperCase() : i) + '=' + encodeURIComponent(obj[i]));\r\n \t}\r\n \treturn ((!existingUrl || existingUrl.indexOf('?') === -1) ? '?' : '&') + params.join('&');\r\n }\r\n\r\n var templateRe = /\\{ *([\\w_ -]+) *\\}/g;\r\n\r\n // @function template(str: String, data: Object): String\r\n // Simple templating facility, accepts a template string of the form `'Hello {a}, {b}'`\r\n // and a data object like `{a: 'foo', b: 'bar'}`, returns evaluated string\r\n // `('Hello foo, bar')`. You can also specify functions instead of strings for\r\n // data values — they will be evaluated passing `data` as an argument.\r\n function template(str, data) {\r\n \treturn str.replace(templateRe, function (str, key) {\r\n \t\tvar value = data[key];\r\n\r\n \t\tif (value === undefined) {\r\n \t\t\tthrow new Error('No value provided for variable ' + str);\r\n\r\n \t\t} else if (typeof value === 'function') {\r\n \t\t\tvalue = value(data);\r\n \t\t}\r\n \t\treturn value;\r\n \t});\r\n }\r\n\r\n // @function isArray(obj): Boolean\r\n // Compatibility polyfill for [Array.isArray](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray)\r\n var isArray = Array.isArray || function (obj) {\r\n \treturn (Object.prototype.toString.call(obj) === '[object Array]');\r\n };\r\n\r\n // @function indexOf(array: Array, el: Object): Number\r\n // Compatibility polyfill for [Array.prototype.indexOf](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf)\r\n function indexOf(array, el) {\r\n \tfor (var i = 0; i < array.length; i++) {\r\n \t\tif (array[i] === el) { return i; }\r\n \t}\r\n \treturn -1;\r\n }\r\n\r\n // @property emptyImageUrl: String\r\n // Data URI string containing a base64-encoded empty GIF image.\r\n // Used as a hack to free memory from unused images on WebKit-powered\r\n // mobile devices (by setting image `src` to this string).\r\n var emptyImageUrl = 'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=';\r\n\r\n // inspired by https://paulirish.com/2011/requestanimationframe-for-smart-animating/\r\n\r\n function getPrefixed(name) {\r\n \treturn window['webkit' + name] || window['moz' + name] || window['ms' + name];\r\n }\r\n\r\n var lastTime = 0;\r\n\r\n // fallback for IE 7-8\r\n function timeoutDefer(fn) {\r\n \tvar time = +new Date(),\r\n \t timeToCall = Math.max(0, 16 - (time - lastTime));\r\n\r\n \tlastTime = time + timeToCall;\r\n \treturn window.setTimeout(fn, timeToCall);\r\n }\r\n\r\n var requestFn = window.requestAnimationFrame || getPrefixed('RequestAnimationFrame') || timeoutDefer;\r\n var cancelFn = window.cancelAnimationFrame || getPrefixed('CancelAnimationFrame') ||\r\n \t\tgetPrefixed('CancelRequestAnimationFrame') || function (id) { window.clearTimeout(id); };\r\n\r\n // @function requestAnimFrame(fn: Function, context?: Object, immediate?: Boolean): Number\r\n // Schedules `fn` to be executed when the browser repaints. `fn` is bound to\r\n // `context` if given. When `immediate` is set, `fn` is called immediately if\r\n // the browser doesn't have native support for\r\n // [`window.requestAnimationFrame`](https://developer.mozilla.org/docs/Web/API/window/requestAnimationFrame),\r\n // otherwise it's delayed. Returns a request ID that can be used to cancel the request.\r\n function requestAnimFrame(fn, context, immediate) {\r\n \tif (immediate && requestFn === timeoutDefer) {\r\n \t\tfn.call(context);\r\n \t} else {\r\n \t\treturn requestFn.call(window, bind(fn, context));\r\n \t}\r\n }\r\n\r\n // @function cancelAnimFrame(id: Number): undefined\r\n // Cancels a previous `requestAnimFrame`. See also [window.cancelAnimationFrame](https://developer.mozilla.org/docs/Web/API/window/cancelAnimationFrame).\r\n function cancelAnimFrame(id) {\r\n \tif (id) {\r\n \t\tcancelFn.call(window, id);\r\n \t}\r\n }\n\n var Util = {\n __proto__: null,\n extend: extend,\n create: create$2,\n bind: bind,\n get lastId () { return lastId; },\n stamp: stamp,\n throttle: throttle,\n wrapNum: wrapNum,\n falseFn: falseFn,\n formatNum: formatNum,\n trim: trim,\n splitWords: splitWords,\n setOptions: setOptions,\n getParamString: getParamString,\n template: template,\n isArray: isArray,\n indexOf: indexOf,\n emptyImageUrl: emptyImageUrl,\n requestFn: requestFn,\n cancelFn: cancelFn,\n requestAnimFrame: requestAnimFrame,\n cancelAnimFrame: cancelAnimFrame\n };\n\n // @class Class\r\n // @aka L.Class\r\n\r\n // @section\r\n // @uninheritable\r\n\r\n // Thanks to John Resig and Dean Edwards for inspiration!\r\n\r\n function Class() {}\r\n\r\n Class.extend = function (props) {\r\n\r\n \t// @function extend(props: Object): Function\r\n \t// [Extends the current class](#class-inheritance) given the properties to be included.\r\n \t// Returns a Javascript function that is a class constructor (to be called with `new`).\r\n \tvar NewClass = function () {\r\n\r\n \t\tsetOptions(this);\r\n\r\n \t\t// call the constructor\r\n \t\tif (this.initialize) {\r\n \t\t\tthis.initialize.apply(this, arguments);\r\n \t\t}\r\n\r\n \t\t// call all constructor hooks\r\n \t\tthis.callInitHooks();\r\n \t};\r\n\r\n \tvar parentProto = NewClass.__super__ = this.prototype;\r\n\r\n \tvar proto = create$2(parentProto);\r\n \tproto.constructor = NewClass;\r\n\r\n \tNewClass.prototype = proto;\r\n\r\n \t// inherit parent's statics\r\n \tfor (var i in this) {\r\n \t\tif (Object.prototype.hasOwnProperty.call(this, i) && i !== 'prototype' && i !== '__super__') {\r\n \t\t\tNewClass[i] = this[i];\r\n \t\t}\r\n \t}\r\n\r\n \t// mix static properties into the class\r\n \tif (props.statics) {\r\n \t\textend(NewClass, props.statics);\r\n \t}\r\n\r\n \t// mix includes into the prototype\r\n \tif (props.includes) {\r\n \t\tcheckDeprecatedMixinEvents(props.includes);\r\n \t\textend.apply(null, [proto].concat(props.includes));\r\n \t}\r\n\r\n \t// mix given properties into the prototype\r\n \textend(proto, props);\r\n \tdelete proto.statics;\r\n \tdelete proto.includes;\r\n\r\n \t// merge options\r\n \tif (proto.options) {\r\n \t\tproto.options = parentProto.options ? create$2(parentProto.options) : {};\r\n \t\textend(proto.options, props.options);\r\n \t}\r\n\r\n \tproto._initHooks = [];\r\n\r\n \t// add method for calling all hooks\r\n \tproto.callInitHooks = function () {\r\n\r\n \t\tif (this._initHooksCalled) { return; }\r\n\r\n \t\tif (parentProto.callInitHooks) {\r\n \t\t\tparentProto.callInitHooks.call(this);\r\n \t\t}\r\n\r\n \t\tthis._initHooksCalled = true;\r\n\r\n \t\tfor (var i = 0, len = proto._initHooks.length; i < len; i++) {\r\n \t\t\tproto._initHooks[i].call(this);\r\n \t\t}\r\n \t};\r\n\r\n \treturn NewClass;\r\n };\r\n\r\n\r\n // @function include(properties: Object): this\r\n // [Includes a mixin](#class-includes) into the current class.\r\n Class.include = function (props) {\r\n \tvar parentOptions = this.prototype.options;\r\n \textend(this.prototype, props);\r\n \tif (props.options) {\r\n \t\tthis.prototype.options = parentOptions;\r\n \t\tthis.mergeOptions(props.options);\r\n \t}\r\n \treturn this;\r\n };\r\n\r\n // @function mergeOptions(options: Object): this\r\n // [Merges `options`](#class-options) into the defaults of the class.\r\n Class.mergeOptions = function (options) {\r\n \textend(this.prototype.options, options);\r\n \treturn this;\r\n };\r\n\r\n // @function addInitHook(fn: Function): this\r\n // Adds a [constructor hook](#class-constructor-hooks) to the class.\r\n Class.addInitHook = function (fn) { // (Function) || (String, args...)\r\n \tvar args = Array.prototype.slice.call(arguments, 1);\r\n\r\n \tvar init = typeof fn === 'function' ? fn : function () {\r\n \t\tthis[fn].apply(this, args);\r\n \t};\r\n\r\n \tthis.prototype._initHooks = this.prototype._initHooks || [];\r\n \tthis.prototype._initHooks.push(init);\r\n \treturn this;\r\n };\r\n\r\n function checkDeprecatedMixinEvents(includes) {\r\n \t/* global L: true */\r\n \tif (typeof L === 'undefined' || !L || !L.Mixin) { return; }\r\n\r\n \tincludes = isArray(includes) ? includes : [includes];\r\n\r\n \tfor (var i = 0; i < includes.length; i++) {\r\n \t\tif (includes[i] === L.Mixin.Events) {\r\n \t\t\tconsole.warn('Deprecated include of L.Mixin.Events: ' +\r\n \t\t\t\t'this property will be removed in future releases, ' +\r\n \t\t\t\t'please inherit from L.Evented instead.', new Error().stack);\r\n \t\t}\r\n \t}\r\n }\n\n /*\r\n * @class Evented\r\n * @aka L.Evented\r\n * @inherits Class\r\n *\r\n * A set of methods shared between event-powered classes (like `Map` and `Marker`). Generally, events allow you to execute some function when something happens with an object (e.g. the user clicks on the map, causing the map to fire `'click'` event).\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * map.on('click', function(e) {\r\n * \talert(e.latlng);\r\n * } );\r\n * ```\r\n *\r\n * Leaflet deals with event listeners by reference, so if you want to add a listener and then remove it, define it as a function:\r\n *\r\n * ```js\r\n * function onClick(e) { ... }\r\n *\r\n * map.on('click', onClick);\r\n * map.off('click', onClick);\r\n * ```\r\n */\r\n\r\n var Events = {\r\n \t/* @method on(type: String, fn: Function, context?: Object): this\r\n \t * Adds a listener function (`fn`) to a particular event type of the object. You can optionally specify the context of the listener (object the this keyword will point to). You can also pass several space-separated types (e.g. `'click dblclick'`).\r\n \t *\r\n \t * @alternative\r\n \t * @method on(eventMap: Object): this\r\n \t * Adds a set of type/listener pairs, e.g. `{click: onClick, mousemove: onMouseMove}`\r\n \t */\r\n \ton: function (types, fn, context) {\r\n\r\n \t\t// types can be a map of types/handlers\r\n \t\tif (typeof types === 'object') {\r\n \t\t\tfor (var type in types) {\r\n \t\t\t\t// we don't process space-separated events here for performance;\r\n \t\t\t\t// it's a hot path since Layer uses the on(obj) syntax\r\n \t\t\t\tthis._on(type, types[type], fn);\r\n \t\t\t}\r\n\r\n \t\t} else {\r\n \t\t\t// types can be a string of space-separated words\r\n \t\t\ttypes = splitWords(types);\r\n\r\n \t\t\tfor (var i = 0, len = types.length; i < len; i++) {\r\n \t\t\t\tthis._on(types[i], fn, context);\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t/* @method off(type: String, fn?: Function, context?: Object): this\r\n \t * Removes a previously added listener function. If no function is specified, it will remove all the listeners of that particular event from the object. Note that if you passed a custom context to `on`, you must pass the same context to `off` in order to remove the listener.\r\n \t *\r\n \t * @alternative\r\n \t * @method off(eventMap: Object): this\r\n \t * Removes a set of type/listener pairs.\r\n \t *\r\n \t * @alternative\r\n \t * @method off: this\r\n \t * Removes all listeners to all events on the object. This includes implicitly attached events.\r\n \t */\r\n \toff: function (types, fn, context) {\r\n\r\n \t\tif (!arguments.length) {\r\n \t\t\t// clear all listeners if called without arguments\r\n \t\t\tdelete this._events;\r\n\r\n \t\t} else if (typeof types === 'object') {\r\n \t\t\tfor (var type in types) {\r\n \t\t\t\tthis._off(type, types[type], fn);\r\n \t\t\t}\r\n\r\n \t\t} else {\r\n \t\t\ttypes = splitWords(types);\r\n\r\n \t\t\tvar removeAll = arguments.length === 1;\r\n \t\t\tfor (var i = 0, len = types.length; i < len; i++) {\r\n \t\t\t\tif (removeAll) {\r\n \t\t\t\t\tthis._off(types[i]);\r\n \t\t\t\t} else {\r\n \t\t\t\t\tthis._off(types[i], fn, context);\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// attach listener (without syntactic sugar now)\r\n \t_on: function (type, fn, context, _once) {\r\n \t\tif (typeof fn !== 'function') {\r\n \t\t\tconsole.warn('wrong listener type: ' + typeof fn);\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\t// check if fn already there\r\n \t\tif (this._listens(type, fn, context) !== false) {\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\tif (context === this) {\r\n \t\t\t// Less memory footprint.\r\n \t\t\tcontext = undefined;\r\n \t\t}\r\n\r\n \t\tvar newListener = {fn: fn, ctx: context};\r\n \t\tif (_once) {\r\n \t\t\tnewListener.once = true;\r\n \t\t}\r\n\r\n \t\tthis._events = this._events || {};\r\n \t\tthis._events[type] = this._events[type] || [];\r\n \t\tthis._events[type].push(newListener);\r\n \t},\r\n\r\n \t_off: function (type, fn, context) {\r\n \t\tvar listeners,\r\n \t\t i,\r\n \t\t len;\r\n\r\n \t\tif (!this._events) {\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\tlisteners = this._events[type];\r\n \t\tif (!listeners) {\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\tif (arguments.length === 1) { // remove all\r\n \t\t\tif (this._firingCount) {\r\n \t\t\t\t// Set all removed listeners to noop\r\n \t\t\t\t// so they are not called if remove happens in fire\r\n \t\t\t\tfor (i = 0, len = listeners.length; i < len; i++) {\r\n \t\t\t\t\tlisteners[i].fn = falseFn;\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t\t// clear all listeners for a type if function isn't specified\r\n \t\t\tdelete this._events[type];\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\tif (typeof fn !== 'function') {\r\n \t\t\tconsole.warn('wrong listener type: ' + typeof fn);\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\t// find fn and remove it\r\n \t\tvar index = this._listens(type, fn, context);\r\n \t\tif (index !== false) {\r\n \t\t\tvar listener = listeners[index];\r\n \t\t\tif (this._firingCount) {\r\n \t\t\t\t// set the removed listener to noop so that's not called if remove happens in fire\r\n \t\t\t\tlistener.fn = falseFn;\r\n\r\n \t\t\t\t/* copy array in case events are being fired */\r\n \t\t\t\tthis._events[type] = listeners = listeners.slice();\r\n \t\t\t}\r\n \t\t\tlisteners.splice(index, 1);\r\n \t\t}\r\n \t},\r\n\r\n \t// @method fire(type: String, data?: Object, propagate?: Boolean): this\r\n \t// Fires an event of the specified type. You can optionally provide a data\r\n \t// object — the first argument of the listener function will contain its\r\n \t// properties. The event can optionally be propagated to event parents.\r\n \tfire: function (type, data, propagate) {\r\n \t\tif (!this.listens(type, propagate)) { return this; }\r\n\r\n \t\tvar event = extend({}, data, {\r\n \t\t\ttype: type,\r\n \t\t\ttarget: this,\r\n \t\t\tsourceTarget: data && data.sourceTarget || this\r\n \t\t});\r\n\r\n \t\tif (this._events) {\r\n \t\t\tvar listeners = this._events[type];\r\n \t\t\tif (listeners) {\r\n \t\t\t\tthis._firingCount = (this._firingCount + 1) || 1;\r\n \t\t\t\tfor (var i = 0, len = listeners.length; i < len; i++) {\r\n \t\t\t\t\tvar l = listeners[i];\r\n \t\t\t\t\t// off overwrites l.fn, so we need to copy fn to a var\r\n \t\t\t\t\tvar fn = l.fn;\r\n \t\t\t\t\tif (l.once) {\r\n \t\t\t\t\t\tthis.off(type, fn, l.ctx);\r\n \t\t\t\t\t}\r\n \t\t\t\t\tfn.call(l.ctx || this, event);\r\n \t\t\t\t}\r\n\r\n \t\t\t\tthis._firingCount--;\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\tif (propagate) {\r\n \t\t\t// propagate the event to parents (set with addEventParent)\r\n \t\t\tthis._propagateEvent(event);\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method listens(type: String, propagate?: Boolean): Boolean\r\n \t// @method listens(type: String, fn: Function, context?: Object, propagate?: Boolean): Boolean\r\n \t// Returns `true` if a particular event type has any listeners attached to it.\r\n \t// The verification can optionally be propagated, it will return `true` if parents have the listener attached to it.\r\n \tlistens: function (type, fn, context, propagate) {\r\n \t\tif (typeof type !== 'string') {\r\n \t\t\tconsole.warn('\"string\" type argument expected');\r\n \t\t}\r\n\r\n \t\t// we don't overwrite the input `fn` value, because we need to use it for propagation\r\n \t\tvar _fn = fn;\r\n \t\tif (typeof fn !== 'function') {\r\n \t\t\tpropagate = !!fn;\r\n \t\t\t_fn = undefined;\r\n \t\t\tcontext = undefined;\r\n \t\t}\r\n\r\n \t\tvar listeners = this._events && this._events[type];\r\n \t\tif (listeners && listeners.length) {\r\n \t\t\tif (this._listens(type, _fn, context) !== false) {\r\n \t\t\t\treturn true;\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\tif (propagate) {\r\n \t\t\t// also check parents for listeners if event propagates\r\n \t\t\tfor (var id in this._eventParents) {\r\n \t\t\t\tif (this._eventParents[id].listens(type, fn, context, propagate)) { return true; }\r\n \t\t\t}\r\n \t\t}\r\n \t\treturn false;\r\n \t},\r\n\r\n \t// returns the index (number) or false\r\n \t_listens: function (type, fn, context) {\r\n \t\tif (!this._events) {\r\n \t\t\treturn false;\r\n \t\t}\r\n\r\n \t\tvar listeners = this._events[type] || [];\r\n \t\tif (!fn) {\r\n \t\t\treturn !!listeners.length;\r\n \t\t}\r\n\r\n \t\tif (context === this) {\r\n \t\t\t// Less memory footprint.\r\n \t\t\tcontext = undefined;\r\n \t\t}\r\n\r\n \t\tfor (var i = 0, len = listeners.length; i < len; i++) {\r\n \t\t\tif (listeners[i].fn === fn && listeners[i].ctx === context) {\r\n \t\t\t\treturn i;\r\n \t\t\t}\r\n \t\t}\r\n \t\treturn false;\r\n\r\n \t},\r\n\r\n \t// @method once(…): this\r\n \t// Behaves as [`on(…)`](#evented-on), except the listener will only get fired once and then removed.\r\n \tonce: function (types, fn, context) {\r\n\r\n \t\t// types can be a map of types/handlers\r\n \t\tif (typeof types === 'object') {\r\n \t\t\tfor (var type in types) {\r\n \t\t\t\t// we don't process space-separated events here for performance;\r\n \t\t\t\t// it's a hot path since Layer uses the on(obj) syntax\r\n \t\t\t\tthis._on(type, types[type], fn, true);\r\n \t\t\t}\r\n\r\n \t\t} else {\r\n \t\t\t// types can be a string of space-separated words\r\n \t\t\ttypes = splitWords(types);\r\n\r\n \t\t\tfor (var i = 0, len = types.length; i < len; i++) {\r\n \t\t\t\tthis._on(types[i], fn, context, true);\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method addEventParent(obj: Evented): this\r\n \t// Adds an event parent - an `Evented` that will receive propagated events\r\n \taddEventParent: function (obj) {\r\n \t\tthis._eventParents = this._eventParents || {};\r\n \t\tthis._eventParents[stamp(obj)] = obj;\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method removeEventParent(obj: Evented): this\r\n \t// Removes an event parent, so it will stop receiving propagated events\r\n \tremoveEventParent: function (obj) {\r\n \t\tif (this._eventParents) {\r\n \t\t\tdelete this._eventParents[stamp(obj)];\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \t_propagateEvent: function (e) {\r\n \t\tfor (var id in this._eventParents) {\r\n \t\t\tthis._eventParents[id].fire(e.type, extend({\r\n \t\t\t\tlayer: e.target,\r\n \t\t\t\tpropagatedFrom: e.target\r\n \t\t\t}, e), true);\r\n \t\t}\r\n \t}\r\n };\r\n\r\n // aliases; we should ditch those eventually\r\n\r\n // @method addEventListener(…): this\r\n // Alias to [`on(…)`](#evented-on)\r\n Events.addEventListener = Events.on;\r\n\r\n // @method removeEventListener(…): this\r\n // Alias to [`off(…)`](#evented-off)\r\n\r\n // @method clearAllEventListeners(…): this\r\n // Alias to [`off()`](#evented-off)\r\n Events.removeEventListener = Events.clearAllEventListeners = Events.off;\r\n\r\n // @method addOneTimeEventListener(…): this\r\n // Alias to [`once(…)`](#evented-once)\r\n Events.addOneTimeEventListener = Events.once;\r\n\r\n // @method fireEvent(…): this\r\n // Alias to [`fire(…)`](#evented-fire)\r\n Events.fireEvent = Events.fire;\r\n\r\n // @method hasEventListeners(…): Boolean\r\n // Alias to [`listens(…)`](#evented-listens)\r\n Events.hasEventListeners = Events.listens;\r\n\r\n var Evented = Class.extend(Events);\n\n /*\r\n * @class Point\r\n * @aka L.Point\r\n *\r\n * Represents a point with `x` and `y` coordinates in pixels.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var point = L.point(200, 300);\r\n * ```\r\n *\r\n * All Leaflet methods and options that accept `Point` objects also accept them in a simple Array form (unless noted otherwise), so these lines are equivalent:\r\n *\r\n * ```js\r\n * map.panBy([200, 300]);\r\n * map.panBy(L.point(200, 300));\r\n * ```\r\n *\r\n * Note that `Point` does not inherit from Leaflet's `Class` object,\r\n * which means new classes can't inherit from it, and new methods\r\n * can't be added to it with the `include` function.\r\n */\r\n\r\n function Point(x, y, round) {\r\n \t// @property x: Number; The `x` coordinate of the point\r\n \tthis.x = (round ? Math.round(x) : x);\r\n \t// @property y: Number; The `y` coordinate of the point\r\n \tthis.y = (round ? Math.round(y) : y);\r\n }\r\n\r\n var trunc = Math.trunc || function (v) {\r\n \treturn v > 0 ? Math.floor(v) : Math.ceil(v);\r\n };\r\n\r\n Point.prototype = {\r\n\r\n \t// @method clone(): Point\r\n \t// Returns a copy of the current point.\r\n \tclone: function () {\r\n \t\treturn new Point(this.x, this.y);\r\n \t},\r\n\r\n \t// @method add(otherPoint: Point): Point\r\n \t// Returns the result of addition of the current and the given points.\r\n \tadd: function (point) {\r\n \t\t// non-destructive, returns a new point\r\n \t\treturn this.clone()._add(toPoint(point));\r\n \t},\r\n\r\n \t_add: function (point) {\r\n \t\t// destructive, used directly for performance in situations where it's safe to modify existing point\r\n \t\tthis.x += point.x;\r\n \t\tthis.y += point.y;\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method subtract(otherPoint: Point): Point\r\n \t// Returns the result of subtraction of the given point from the current.\r\n \tsubtract: function (point) {\r\n \t\treturn this.clone()._subtract(toPoint(point));\r\n \t},\r\n\r\n \t_subtract: function (point) {\r\n \t\tthis.x -= point.x;\r\n \t\tthis.y -= point.y;\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method divideBy(num: Number): Point\r\n \t// Returns the result of division of the current point by the given number.\r\n \tdivideBy: function (num) {\r\n \t\treturn this.clone()._divideBy(num);\r\n \t},\r\n\r\n \t_divideBy: function (num) {\r\n \t\tthis.x /= num;\r\n \t\tthis.y /= num;\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method multiplyBy(num: Number): Point\r\n \t// Returns the result of multiplication of the current point by the given number.\r\n \tmultiplyBy: function (num) {\r\n \t\treturn this.clone()._multiplyBy(num);\r\n \t},\r\n\r\n \t_multiplyBy: function (num) {\r\n \t\tthis.x *= num;\r\n \t\tthis.y *= num;\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method scaleBy(scale: Point): Point\r\n \t// Multiply each coordinate of the current point by each coordinate of\r\n \t// `scale`. In linear algebra terms, multiply the point by the\r\n \t// [scaling matrix](https://en.wikipedia.org/wiki/Scaling_%28geometry%29#Matrix_representation)\r\n \t// defined by `scale`.\r\n \tscaleBy: function (point) {\r\n \t\treturn new Point(this.x * point.x, this.y * point.y);\r\n \t},\r\n\r\n \t// @method unscaleBy(scale: Point): Point\r\n \t// Inverse of `scaleBy`. Divide each coordinate of the current point by\r\n \t// each coordinate of `scale`.\r\n \tunscaleBy: function (point) {\r\n \t\treturn new Point(this.x / point.x, this.y / point.y);\r\n \t},\r\n\r\n \t// @method round(): Point\r\n \t// Returns a copy of the current point with rounded coordinates.\r\n \tround: function () {\r\n \t\treturn this.clone()._round();\r\n \t},\r\n\r\n \t_round: function () {\r\n \t\tthis.x = Math.round(this.x);\r\n \t\tthis.y = Math.round(this.y);\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method floor(): Point\r\n \t// Returns a copy of the current point with floored coordinates (rounded down).\r\n \tfloor: function () {\r\n \t\treturn this.clone()._floor();\r\n \t},\r\n\r\n \t_floor: function () {\r\n \t\tthis.x = Math.floor(this.x);\r\n \t\tthis.y = Math.floor(this.y);\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method ceil(): Point\r\n \t// Returns a copy of the current point with ceiled coordinates (rounded up).\r\n \tceil: function () {\r\n \t\treturn this.clone()._ceil();\r\n \t},\r\n\r\n \t_ceil: function () {\r\n \t\tthis.x = Math.ceil(this.x);\r\n \t\tthis.y = Math.ceil(this.y);\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method trunc(): Point\r\n \t// Returns a copy of the current point with truncated coordinates (rounded towards zero).\r\n \ttrunc: function () {\r\n \t\treturn this.clone()._trunc();\r\n \t},\r\n\r\n \t_trunc: function () {\r\n \t\tthis.x = trunc(this.x);\r\n \t\tthis.y = trunc(this.y);\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method distanceTo(otherPoint: Point): Number\r\n \t// Returns the cartesian distance between the current and the given points.\r\n \tdistanceTo: function (point) {\r\n \t\tpoint = toPoint(point);\r\n\r\n \t\tvar x = point.x - this.x,\r\n \t\t y = point.y - this.y;\r\n\r\n \t\treturn Math.sqrt(x * x + y * y);\r\n \t},\r\n\r\n \t// @method equals(otherPoint: Point): Boolean\r\n \t// Returns `true` if the given point has the same coordinates.\r\n \tequals: function (point) {\r\n \t\tpoint = toPoint(point);\r\n\r\n \t\treturn point.x === this.x &&\r\n \t\t point.y === this.y;\r\n \t},\r\n\r\n \t// @method contains(otherPoint: Point): Boolean\r\n \t// Returns `true` if both coordinates of the given point are less than the corresponding current point coordinates (in absolute values).\r\n \tcontains: function (point) {\r\n \t\tpoint = toPoint(point);\r\n\r\n \t\treturn Math.abs(point.x) <= Math.abs(this.x) &&\r\n \t\t Math.abs(point.y) <= Math.abs(this.y);\r\n \t},\r\n\r\n \t// @method toString(): String\r\n \t// Returns a string representation of the point for debugging purposes.\r\n \ttoString: function () {\r\n \t\treturn 'Point(' +\r\n \t\t formatNum(this.x) + ', ' +\r\n \t\t formatNum(this.y) + ')';\r\n \t}\r\n };\r\n\r\n // @factory L.point(x: Number, y: Number, round?: Boolean)\r\n // Creates a Point object with the given `x` and `y` coordinates. If optional `round` is set to true, rounds the `x` and `y` values.\r\n\r\n // @alternative\r\n // @factory L.point(coords: Number[])\r\n // Expects an array of the form `[x, y]` instead.\r\n\r\n // @alternative\r\n // @factory L.point(coords: Object)\r\n // Expects a plain object of the form `{x: Number, y: Number}` instead.\r\n function toPoint(x, y, round) {\r\n \tif (x instanceof Point) {\r\n \t\treturn x;\r\n \t}\r\n \tif (isArray(x)) {\r\n \t\treturn new Point(x[0], x[1]);\r\n \t}\r\n \tif (x === undefined || x === null) {\r\n \t\treturn x;\r\n \t}\r\n \tif (typeof x === 'object' && 'x' in x && 'y' in x) {\r\n \t\treturn new Point(x.x, x.y);\r\n \t}\r\n \treturn new Point(x, y, round);\r\n }\n\n /*\r\n * @class Bounds\r\n * @aka L.Bounds\r\n *\r\n * Represents a rectangular area in pixel coordinates.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var p1 = L.point(10, 10),\r\n * p2 = L.point(40, 60),\r\n * bounds = L.bounds(p1, p2);\r\n * ```\r\n *\r\n * All Leaflet methods that accept `Bounds` objects also accept them in a simple Array form (unless noted otherwise), so the bounds example above can be passed like this:\r\n *\r\n * ```js\r\n * otherBounds.intersects([[10, 10], [40, 60]]);\r\n * ```\r\n *\r\n * Note that `Bounds` does not inherit from Leaflet's `Class` object,\r\n * which means new classes can't inherit from it, and new methods\r\n * can't be added to it with the `include` function.\r\n */\r\n\r\n function Bounds(a, b) {\r\n \tif (!a) { return; }\r\n\r\n \tvar points = b ? [a, b] : a;\r\n\r\n \tfor (var i = 0, len = points.length; i < len; i++) {\r\n \t\tthis.extend(points[i]);\r\n \t}\r\n }\r\n\r\n Bounds.prototype = {\r\n \t// @method extend(point: Point): this\r\n \t// Extends the bounds to contain the given point.\r\n\r\n \t// @alternative\r\n \t// @method extend(otherBounds: Bounds): this\r\n \t// Extend the bounds to contain the given bounds\r\n \textend: function (obj) {\r\n \t\tvar min2, max2;\r\n \t\tif (!obj) { return this; }\r\n\r\n \t\tif (obj instanceof Point || typeof obj[0] === 'number' || 'x' in obj) {\r\n \t\t\tmin2 = max2 = toPoint(obj);\r\n \t\t} else {\r\n \t\t\tobj = toBounds(obj);\r\n \t\t\tmin2 = obj.min;\r\n \t\t\tmax2 = obj.max;\r\n\r\n \t\t\tif (!min2 || !max2) { return this; }\r\n \t\t}\r\n\r\n \t\t// @property min: Point\r\n \t\t// The top left corner of the rectangle.\r\n \t\t// @property max: Point\r\n \t\t// The bottom right corner of the rectangle.\r\n \t\tif (!this.min && !this.max) {\r\n \t\t\tthis.min = min2.clone();\r\n \t\t\tthis.max = max2.clone();\r\n \t\t} else {\r\n \t\t\tthis.min.x = Math.min(min2.x, this.min.x);\r\n \t\t\tthis.max.x = Math.max(max2.x, this.max.x);\r\n \t\t\tthis.min.y = Math.min(min2.y, this.min.y);\r\n \t\t\tthis.max.y = Math.max(max2.y, this.max.y);\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method getCenter(round?: Boolean): Point\r\n \t// Returns the center point of the bounds.\r\n \tgetCenter: function (round) {\r\n \t\treturn toPoint(\r\n \t\t (this.min.x + this.max.x) / 2,\r\n \t\t (this.min.y + this.max.y) / 2, round);\r\n \t},\r\n\r\n \t// @method getBottomLeft(): Point\r\n \t// Returns the bottom-left point of the bounds.\r\n \tgetBottomLeft: function () {\r\n \t\treturn toPoint(this.min.x, this.max.y);\r\n \t},\r\n\r\n \t// @method getTopRight(): Point\r\n \t// Returns the top-right point of the bounds.\r\n \tgetTopRight: function () { // -> Point\r\n \t\treturn toPoint(this.max.x, this.min.y);\r\n \t},\r\n\r\n \t// @method getTopLeft(): Point\r\n \t// Returns the top-left point of the bounds (i.e. [`this.min`](#bounds-min)).\r\n \tgetTopLeft: function () {\r\n \t\treturn this.min; // left, top\r\n \t},\r\n\r\n \t// @method getBottomRight(): Point\r\n \t// Returns the bottom-right point of the bounds (i.e. [`this.max`](#bounds-max)).\r\n \tgetBottomRight: function () {\r\n \t\treturn this.max; // right, bottom\r\n \t},\r\n\r\n \t// @method getSize(): Point\r\n \t// Returns the size of the given bounds\r\n \tgetSize: function () {\r\n \t\treturn this.max.subtract(this.min);\r\n \t},\r\n\r\n \t// @method contains(otherBounds: Bounds): Boolean\r\n \t// Returns `true` if the rectangle contains the given one.\r\n \t// @alternative\r\n \t// @method contains(point: Point): Boolean\r\n \t// Returns `true` if the rectangle contains the given point.\r\n \tcontains: function (obj) {\r\n \t\tvar min, max;\r\n\r\n \t\tif (typeof obj[0] === 'number' || obj instanceof Point) {\r\n \t\t\tobj = toPoint(obj);\r\n \t\t} else {\r\n \t\t\tobj = toBounds(obj);\r\n \t\t}\r\n\r\n \t\tif (obj instanceof Bounds) {\r\n \t\t\tmin = obj.min;\r\n \t\t\tmax = obj.max;\r\n \t\t} else {\r\n \t\t\tmin = max = obj;\r\n \t\t}\r\n\r\n \t\treturn (min.x >= this.min.x) &&\r\n \t\t (max.x <= this.max.x) &&\r\n \t\t (min.y >= this.min.y) &&\r\n \t\t (max.y <= this.max.y);\r\n \t},\r\n\r\n \t// @method intersects(otherBounds: Bounds): Boolean\r\n \t// Returns `true` if the rectangle intersects the given bounds. Two bounds\r\n \t// intersect if they have at least one point in common.\r\n \tintersects: function (bounds) { // (Bounds) -> Boolean\r\n \t\tbounds = toBounds(bounds);\r\n\r\n \t\tvar min = this.min,\r\n \t\t max = this.max,\r\n \t\t min2 = bounds.min,\r\n \t\t max2 = bounds.max,\r\n \t\t xIntersects = (max2.x >= min.x) && (min2.x <= max.x),\r\n \t\t yIntersects = (max2.y >= min.y) && (min2.y <= max.y);\r\n\r\n \t\treturn xIntersects && yIntersects;\r\n \t},\r\n\r\n \t// @method overlaps(otherBounds: Bounds): Boolean\r\n \t// Returns `true` if the rectangle overlaps the given bounds. Two bounds\r\n \t// overlap if their intersection is an area.\r\n \toverlaps: function (bounds) { // (Bounds) -> Boolean\r\n \t\tbounds = toBounds(bounds);\r\n\r\n \t\tvar min = this.min,\r\n \t\t max = this.max,\r\n \t\t min2 = bounds.min,\r\n \t\t max2 = bounds.max,\r\n \t\t xOverlaps = (max2.x > min.x) && (min2.x < max.x),\r\n \t\t yOverlaps = (max2.y > min.y) && (min2.y < max.y);\r\n\r\n \t\treturn xOverlaps && yOverlaps;\r\n \t},\r\n\r\n \t// @method isValid(): Boolean\r\n \t// Returns `true` if the bounds are properly initialized.\r\n \tisValid: function () {\r\n \t\treturn !!(this.min && this.max);\r\n \t},\r\n\r\n\r\n \t// @method pad(bufferRatio: Number): Bounds\r\n \t// Returns bounds created by extending or retracting the current bounds by a given ratio in each direction.\r\n \t// For example, a ratio of 0.5 extends the bounds by 50% in each direction.\r\n \t// Negative values will retract the bounds.\r\n \tpad: function (bufferRatio) {\r\n \t\tvar min = this.min,\r\n \t\tmax = this.max,\r\n \t\theightBuffer = Math.abs(min.x - max.x) * bufferRatio,\r\n \t\twidthBuffer = Math.abs(min.y - max.y) * bufferRatio;\r\n\r\n\r\n \t\treturn toBounds(\r\n \t\t\ttoPoint(min.x - heightBuffer, min.y - widthBuffer),\r\n \t\t\ttoPoint(max.x + heightBuffer, max.y + widthBuffer));\r\n \t},\r\n\r\n\r\n \t// @method equals(otherBounds: Bounds): Boolean\r\n \t// Returns `true` if the rectangle is equivalent to the given bounds.\r\n \tequals: function (bounds) {\r\n \t\tif (!bounds) { return false; }\r\n\r\n \t\tbounds = toBounds(bounds);\r\n\r\n \t\treturn this.min.equals(bounds.getTopLeft()) &&\r\n \t\t\tthis.max.equals(bounds.getBottomRight());\r\n \t},\r\n };\r\n\r\n\r\n // @factory L.bounds(corner1: Point, corner2: Point)\r\n // Creates a Bounds object from two corners coordinate pairs.\r\n // @alternative\r\n // @factory L.bounds(points: Point[])\r\n // Creates a Bounds object from the given array of points.\r\n function toBounds(a, b) {\r\n \tif (!a || a instanceof Bounds) {\r\n \t\treturn a;\r\n \t}\r\n \treturn new Bounds(a, b);\r\n }\n\n /*\r\n * @class LatLngBounds\r\n * @aka L.LatLngBounds\r\n *\r\n * Represents a rectangular geographical area on a map.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var corner1 = L.latLng(40.712, -74.227),\r\n * corner2 = L.latLng(40.774, -74.125),\r\n * bounds = L.latLngBounds(corner1, corner2);\r\n * ```\r\n *\r\n * All Leaflet methods that accept LatLngBounds objects also accept them in a simple Array form (unless noted otherwise), so the bounds example above can be passed like this:\r\n *\r\n * ```js\r\n * map.fitBounds([\r\n * \t[40.712, -74.227],\r\n * \t[40.774, -74.125]\r\n * ]);\r\n * ```\r\n *\r\n * Caution: if the area crosses the antimeridian (often confused with the International Date Line), you must specify corners _outside_ the [-180, 180] degrees longitude range.\r\n *\r\n * Note that `LatLngBounds` does not inherit from Leaflet's `Class` object,\r\n * which means new classes can't inherit from it, and new methods\r\n * can't be added to it with the `include` function.\r\n */\r\n\r\n function LatLngBounds(corner1, corner2) { // (LatLng, LatLng) or (LatLng[])\r\n \tif (!corner1) { return; }\r\n\r\n \tvar latlngs = corner2 ? [corner1, corner2] : corner1;\r\n\r\n \tfor (var i = 0, len = latlngs.length; i < len; i++) {\r\n \t\tthis.extend(latlngs[i]);\r\n \t}\r\n }\r\n\r\n LatLngBounds.prototype = {\r\n\r\n \t// @method extend(latlng: LatLng): this\r\n \t// Extend the bounds to contain the given point\r\n\r\n \t// @alternative\r\n \t// @method extend(otherBounds: LatLngBounds): this\r\n \t// Extend the bounds to contain the given bounds\r\n \textend: function (obj) {\r\n \t\tvar sw = this._southWest,\r\n \t\t ne = this._northEast,\r\n \t\t sw2, ne2;\r\n\r\n \t\tif (obj instanceof LatLng) {\r\n \t\t\tsw2 = obj;\r\n \t\t\tne2 = obj;\r\n\r\n \t\t} else if (obj instanceof LatLngBounds) {\r\n \t\t\tsw2 = obj._southWest;\r\n \t\t\tne2 = obj._northEast;\r\n\r\n \t\t\tif (!sw2 || !ne2) { return this; }\r\n\r\n \t\t} else {\r\n \t\t\treturn obj ? this.extend(toLatLng(obj) || toLatLngBounds(obj)) : this;\r\n \t\t}\r\n\r\n \t\tif (!sw && !ne) {\r\n \t\t\tthis._southWest = new LatLng(sw2.lat, sw2.lng);\r\n \t\t\tthis._northEast = new LatLng(ne2.lat, ne2.lng);\r\n \t\t} else {\r\n \t\t\tsw.lat = Math.min(sw2.lat, sw.lat);\r\n \t\t\tsw.lng = Math.min(sw2.lng, sw.lng);\r\n \t\t\tne.lat = Math.max(ne2.lat, ne.lat);\r\n \t\t\tne.lng = Math.max(ne2.lng, ne.lng);\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method pad(bufferRatio: Number): LatLngBounds\r\n \t// Returns bounds created by extending or retracting the current bounds by a given ratio in each direction.\r\n \t// For example, a ratio of 0.5 extends the bounds by 50% in each direction.\r\n \t// Negative values will retract the bounds.\r\n \tpad: function (bufferRatio) {\r\n \t\tvar sw = this._southWest,\r\n \t\t ne = this._northEast,\r\n \t\t heightBuffer = Math.abs(sw.lat - ne.lat) * bufferRatio,\r\n \t\t widthBuffer = Math.abs(sw.lng - ne.lng) * bufferRatio;\r\n\r\n \t\treturn new LatLngBounds(\r\n \t\t new LatLng(sw.lat - heightBuffer, sw.lng - widthBuffer),\r\n \t\t new LatLng(ne.lat + heightBuffer, ne.lng + widthBuffer));\r\n \t},\r\n\r\n \t// @method getCenter(): LatLng\r\n \t// Returns the center point of the bounds.\r\n \tgetCenter: function () {\r\n \t\treturn new LatLng(\r\n \t\t (this._southWest.lat + this._northEast.lat) / 2,\r\n \t\t (this._southWest.lng + this._northEast.lng) / 2);\r\n \t},\r\n\r\n \t// @method getSouthWest(): LatLng\r\n \t// Returns the south-west point of the bounds.\r\n \tgetSouthWest: function () {\r\n \t\treturn this._southWest;\r\n \t},\r\n\r\n \t// @method getNorthEast(): LatLng\r\n \t// Returns the north-east point of the bounds.\r\n \tgetNorthEast: function () {\r\n \t\treturn this._northEast;\r\n \t},\r\n\r\n \t// @method getNorthWest(): LatLng\r\n \t// Returns the north-west point of the bounds.\r\n \tgetNorthWest: function () {\r\n \t\treturn new LatLng(this.getNorth(), this.getWest());\r\n \t},\r\n\r\n \t// @method getSouthEast(): LatLng\r\n \t// Returns the south-east point of the bounds.\r\n \tgetSouthEast: function () {\r\n \t\treturn new LatLng(this.getSouth(), this.getEast());\r\n \t},\r\n\r\n \t// @method getWest(): Number\r\n \t// Returns the west longitude of the bounds\r\n \tgetWest: function () {\r\n \t\treturn this._southWest.lng;\r\n \t},\r\n\r\n \t// @method getSouth(): Number\r\n \t// Returns the south latitude of the bounds\r\n \tgetSouth: function () {\r\n \t\treturn this._southWest.lat;\r\n \t},\r\n\r\n \t// @method getEast(): Number\r\n \t// Returns the east longitude of the bounds\r\n \tgetEast: function () {\r\n \t\treturn this._northEast.lng;\r\n \t},\r\n\r\n \t// @method getNorth(): Number\r\n \t// Returns the north latitude of the bounds\r\n \tgetNorth: function () {\r\n \t\treturn this._northEast.lat;\r\n \t},\r\n\r\n \t// @method contains(otherBounds: LatLngBounds): Boolean\r\n \t// Returns `true` if the rectangle contains the given one.\r\n\r\n \t// @alternative\r\n \t// @method contains (latlng: LatLng): Boolean\r\n \t// Returns `true` if the rectangle contains the given point.\r\n \tcontains: function (obj) { // (LatLngBounds) or (LatLng) -> Boolean\r\n \t\tif (typeof obj[0] === 'number' || obj instanceof LatLng || 'lat' in obj) {\r\n \t\t\tobj = toLatLng(obj);\r\n \t\t} else {\r\n \t\t\tobj = toLatLngBounds(obj);\r\n \t\t}\r\n\r\n \t\tvar sw = this._southWest,\r\n \t\t ne = this._northEast,\r\n \t\t sw2, ne2;\r\n\r\n \t\tif (obj instanceof LatLngBounds) {\r\n \t\t\tsw2 = obj.getSouthWest();\r\n \t\t\tne2 = obj.getNorthEast();\r\n \t\t} else {\r\n \t\t\tsw2 = ne2 = obj;\r\n \t\t}\r\n\r\n \t\treturn (sw2.lat >= sw.lat) && (ne2.lat <= ne.lat) &&\r\n \t\t (sw2.lng >= sw.lng) && (ne2.lng <= ne.lng);\r\n \t},\r\n\r\n \t// @method intersects(otherBounds: LatLngBounds): Boolean\r\n \t// Returns `true` if the rectangle intersects the given bounds. Two bounds intersect if they have at least one point in common.\r\n \tintersects: function (bounds) {\r\n \t\tbounds = toLatLngBounds(bounds);\r\n\r\n \t\tvar sw = this._southWest,\r\n \t\t ne = this._northEast,\r\n \t\t sw2 = bounds.getSouthWest(),\r\n \t\t ne2 = bounds.getNorthEast(),\r\n\r\n \t\t latIntersects = (ne2.lat >= sw.lat) && (sw2.lat <= ne.lat),\r\n \t\t lngIntersects = (ne2.lng >= sw.lng) && (sw2.lng <= ne.lng);\r\n\r\n \t\treturn latIntersects && lngIntersects;\r\n \t},\r\n\r\n \t// @method overlaps(otherBounds: LatLngBounds): Boolean\r\n \t// Returns `true` if the rectangle overlaps the given bounds. Two bounds overlap if their intersection is an area.\r\n \toverlaps: function (bounds) {\r\n \t\tbounds = toLatLngBounds(bounds);\r\n\r\n \t\tvar sw = this._southWest,\r\n \t\t ne = this._northEast,\r\n \t\t sw2 = bounds.getSouthWest(),\r\n \t\t ne2 = bounds.getNorthEast(),\r\n\r\n \t\t latOverlaps = (ne2.lat > sw.lat) && (sw2.lat < ne.lat),\r\n \t\t lngOverlaps = (ne2.lng > sw.lng) && (sw2.lng < ne.lng);\r\n\r\n \t\treturn latOverlaps && lngOverlaps;\r\n \t},\r\n\r\n \t// @method toBBoxString(): String\r\n \t// Returns a string with bounding box coordinates in a 'southwest_lng,southwest_lat,northeast_lng,northeast_lat' format. Useful for sending requests to web services that return geo data.\r\n \ttoBBoxString: function () {\r\n \t\treturn [this.getWest(), this.getSouth(), this.getEast(), this.getNorth()].join(',');\r\n \t},\r\n\r\n \t// @method equals(otherBounds: LatLngBounds, maxMargin?: Number): Boolean\r\n \t// Returns `true` if the rectangle is equivalent (within a small margin of error) to the given bounds. The margin of error can be overridden by setting `maxMargin` to a small number.\r\n \tequals: function (bounds, maxMargin) {\r\n \t\tif (!bounds) { return false; }\r\n\r\n \t\tbounds = toLatLngBounds(bounds);\r\n\r\n \t\treturn this._southWest.equals(bounds.getSouthWest(), maxMargin) &&\r\n \t\t this._northEast.equals(bounds.getNorthEast(), maxMargin);\r\n \t},\r\n\r\n \t// @method isValid(): Boolean\r\n \t// Returns `true` if the bounds are properly initialized.\r\n \tisValid: function () {\r\n \t\treturn !!(this._southWest && this._northEast);\r\n \t}\r\n };\r\n\r\n // TODO International date line?\r\n\r\n // @factory L.latLngBounds(corner1: LatLng, corner2: LatLng)\r\n // Creates a `LatLngBounds` object by defining two diagonally opposite corners of the rectangle.\r\n\r\n // @alternative\r\n // @factory L.latLngBounds(latlngs: LatLng[])\r\n // Creates a `LatLngBounds` object defined by the geographical points it contains. Very useful for zooming the map to fit a particular set of locations with [`fitBounds`](#map-fitbounds).\r\n function toLatLngBounds(a, b) {\r\n \tif (a instanceof LatLngBounds) {\r\n \t\treturn a;\r\n \t}\r\n \treturn new LatLngBounds(a, b);\r\n }\n\n /* @class LatLng\r\n * @aka L.LatLng\r\n *\r\n * Represents a geographical point with a certain latitude and longitude.\r\n *\r\n * @example\r\n *\r\n * ```\r\n * var latlng = L.latLng(50.5, 30.5);\r\n * ```\r\n *\r\n * All Leaflet methods that accept LatLng objects also accept them in a simple Array form and simple object form (unless noted otherwise), so these lines are equivalent:\r\n *\r\n * ```\r\n * map.panTo([50, 30]);\r\n * map.panTo({lon: 30, lat: 50});\r\n * map.panTo({lat: 50, lng: 30});\r\n * map.panTo(L.latLng(50, 30));\r\n * ```\r\n *\r\n * Note that `LatLng` does not inherit from Leaflet's `Class` object,\r\n * which means new classes can't inherit from it, and new methods\r\n * can't be added to it with the `include` function.\r\n */\r\n\r\n function LatLng(lat, lng, alt) {\r\n \tif (isNaN(lat) || isNaN(lng)) {\r\n \t\tthrow new Error('Invalid LatLng object: (' + lat + ', ' + lng + ')');\r\n \t}\r\n\r\n \t// @property lat: Number\r\n \t// Latitude in degrees\r\n \tthis.lat = +lat;\r\n\r\n \t// @property lng: Number\r\n \t// Longitude in degrees\r\n \tthis.lng = +lng;\r\n\r\n \t// @property alt: Number\r\n \t// Altitude in meters (optional)\r\n \tif (alt !== undefined) {\r\n \t\tthis.alt = +alt;\r\n \t}\r\n }\r\n\r\n LatLng.prototype = {\r\n \t// @method equals(otherLatLng: LatLng, maxMargin?: Number): Boolean\r\n \t// Returns `true` if the given `LatLng` point is at the same position (within a small margin of error). The margin of error can be overridden by setting `maxMargin` to a small number.\r\n \tequals: function (obj, maxMargin) {\r\n \t\tif (!obj) { return false; }\r\n\r\n \t\tobj = toLatLng(obj);\r\n\r\n \t\tvar margin = Math.max(\r\n \t\t Math.abs(this.lat - obj.lat),\r\n \t\t Math.abs(this.lng - obj.lng));\r\n\r\n \t\treturn margin <= (maxMargin === undefined ? 1.0E-9 : maxMargin);\r\n \t},\r\n\r\n \t// @method toString(): String\r\n \t// Returns a string representation of the point (for debugging purposes).\r\n \ttoString: function (precision) {\r\n \t\treturn 'LatLng(' +\r\n \t\t formatNum(this.lat, precision) + ', ' +\r\n \t\t formatNum(this.lng, precision) + ')';\r\n \t},\r\n\r\n \t// @method distanceTo(otherLatLng: LatLng): Number\r\n \t// Returns the distance (in meters) to the given `LatLng` calculated using the [Spherical Law of Cosines](https://en.wikipedia.org/wiki/Spherical_law_of_cosines).\r\n \tdistanceTo: function (other) {\r\n \t\treturn Earth.distance(this, toLatLng(other));\r\n \t},\r\n\r\n \t// @method wrap(): LatLng\r\n \t// Returns a new `LatLng` object with the longitude wrapped so it's always between -180 and +180 degrees.\r\n \twrap: function () {\r\n \t\treturn Earth.wrapLatLng(this);\r\n \t},\r\n\r\n \t// @method toBounds(sizeInMeters: Number): LatLngBounds\r\n \t// Returns a new `LatLngBounds` object in which each boundary is `sizeInMeters/2` meters apart from the `LatLng`.\r\n \ttoBounds: function (sizeInMeters) {\r\n \t\tvar latAccuracy = 180 * sizeInMeters / 40075017,\r\n \t\t lngAccuracy = latAccuracy / Math.cos((Math.PI / 180) * this.lat);\r\n\r\n \t\treturn toLatLngBounds(\r\n \t\t [this.lat - latAccuracy, this.lng - lngAccuracy],\r\n \t\t [this.lat + latAccuracy, this.lng + lngAccuracy]);\r\n \t},\r\n\r\n \tclone: function () {\r\n \t\treturn new LatLng(this.lat, this.lng, this.alt);\r\n \t}\r\n };\r\n\r\n\r\n\r\n // @factory L.latLng(latitude: Number, longitude: Number, altitude?: Number): LatLng\r\n // Creates an object representing a geographical point with the given latitude and longitude (and optionally altitude).\r\n\r\n // @alternative\r\n // @factory L.latLng(coords: Array): LatLng\r\n // Expects an array of the form `[Number, Number]` or `[Number, Number, Number]` instead.\r\n\r\n // @alternative\r\n // @factory L.latLng(coords: Object): LatLng\r\n // Expects an plain object of the form `{lat: Number, lng: Number}` or `{lat: Number, lng: Number, alt: Number}` instead.\r\n\r\n function toLatLng(a, b, c) {\r\n \tif (a instanceof LatLng) {\r\n \t\treturn a;\r\n \t}\r\n \tif (isArray(a) && typeof a[0] !== 'object') {\r\n \t\tif (a.length === 3) {\r\n \t\t\treturn new LatLng(a[0], a[1], a[2]);\r\n \t\t}\r\n \t\tif (a.length === 2) {\r\n \t\t\treturn new LatLng(a[0], a[1]);\r\n \t\t}\r\n \t\treturn null;\r\n \t}\r\n \tif (a === undefined || a === null) {\r\n \t\treturn a;\r\n \t}\r\n \tif (typeof a === 'object' && 'lat' in a) {\r\n \t\treturn new LatLng(a.lat, 'lng' in a ? a.lng : a.lon, a.alt);\r\n \t}\r\n \tif (b === undefined) {\r\n \t\treturn null;\r\n \t}\r\n \treturn new LatLng(a, b, c);\r\n }\n\n /*\r\n * @namespace CRS\r\n * @crs L.CRS.Base\r\n * Object that defines coordinate reference systems for projecting\r\n * geographical points into pixel (screen) coordinates and back (and to\r\n * coordinates in other units for [WMS](https://en.wikipedia.org/wiki/Web_Map_Service) services). See\r\n * [spatial reference system](https://en.wikipedia.org/wiki/Spatial_reference_system).\r\n *\r\n * Leaflet defines the most usual CRSs by default. If you want to use a\r\n * CRS not defined by default, take a look at the\r\n * [Proj4Leaflet](https://github.com/kartena/Proj4Leaflet) plugin.\r\n *\r\n * Note that the CRS instances do not inherit from Leaflet's `Class` object,\r\n * and can't be instantiated. Also, new classes can't inherit from them,\r\n * and methods can't be added to them with the `include` function.\r\n */\r\n\r\n var CRS = {\r\n \t// @method latLngToPoint(latlng: LatLng, zoom: Number): Point\r\n \t// Projects geographical coordinates into pixel coordinates for a given zoom.\r\n \tlatLngToPoint: function (latlng, zoom) {\r\n \t\tvar projectedPoint = this.projection.project(latlng),\r\n \t\t scale = this.scale(zoom);\r\n\r\n \t\treturn this.transformation._transform(projectedPoint, scale);\r\n \t},\r\n\r\n \t// @method pointToLatLng(point: Point, zoom: Number): LatLng\r\n \t// The inverse of `latLngToPoint`. Projects pixel coordinates on a given\r\n \t// zoom into geographical coordinates.\r\n \tpointToLatLng: function (point, zoom) {\r\n \t\tvar scale = this.scale(zoom),\r\n \t\t untransformedPoint = this.transformation.untransform(point, scale);\r\n\r\n \t\treturn this.projection.unproject(untransformedPoint);\r\n \t},\r\n\r\n \t// @method project(latlng: LatLng): Point\r\n \t// Projects geographical coordinates into coordinates in units accepted for\r\n \t// this CRS (e.g. meters for EPSG:3857, for passing it to WMS services).\r\n \tproject: function (latlng) {\r\n \t\treturn this.projection.project(latlng);\r\n \t},\r\n\r\n \t// @method unproject(point: Point): LatLng\r\n \t// Given a projected coordinate returns the corresponding LatLng.\r\n \t// The inverse of `project`.\r\n \tunproject: function (point) {\r\n \t\treturn this.projection.unproject(point);\r\n \t},\r\n\r\n \t// @method scale(zoom: Number): Number\r\n \t// Returns the scale used when transforming projected coordinates into\r\n \t// pixel coordinates for a particular zoom. For example, it returns\r\n \t// `256 * 2^zoom` for Mercator-based CRS.\r\n \tscale: function (zoom) {\r\n \t\treturn 256 * Math.pow(2, zoom);\r\n \t},\r\n\r\n \t// @method zoom(scale: Number): Number\r\n \t// Inverse of `scale()`, returns the zoom level corresponding to a scale\r\n \t// factor of `scale`.\r\n \tzoom: function (scale) {\r\n \t\treturn Math.log(scale / 256) / Math.LN2;\r\n \t},\r\n\r\n \t// @method getProjectedBounds(zoom: Number): Bounds\r\n \t// Returns the projection's bounds scaled and transformed for the provided `zoom`.\r\n \tgetProjectedBounds: function (zoom) {\r\n \t\tif (this.infinite) { return null; }\r\n\r\n \t\tvar b = this.projection.bounds,\r\n \t\t s = this.scale(zoom),\r\n \t\t min = this.transformation.transform(b.min, s),\r\n \t\t max = this.transformation.transform(b.max, s);\r\n\r\n \t\treturn new Bounds(min, max);\r\n \t},\r\n\r\n \t// @method distance(latlng1: LatLng, latlng2: LatLng): Number\r\n \t// Returns the distance between two geographical coordinates.\r\n\r\n \t// @property code: String\r\n \t// Standard code name of the CRS passed into WMS services (e.g. `'EPSG:3857'`)\r\n \t//\r\n \t// @property wrapLng: Number[]\r\n \t// An array of two numbers defining whether the longitude (horizontal) coordinate\r\n \t// axis wraps around a given range and how. Defaults to `[-180, 180]` in most\r\n \t// geographical CRSs. If `undefined`, the longitude axis does not wrap around.\r\n \t//\r\n \t// @property wrapLat: Number[]\r\n \t// Like `wrapLng`, but for the latitude (vertical) axis.\r\n\r\n \t// wrapLng: [min, max],\r\n \t// wrapLat: [min, max],\r\n\r\n \t// @property infinite: Boolean\r\n \t// If true, the coordinate space will be unbounded (infinite in both axes)\r\n \tinfinite: false,\r\n\r\n \t// @method wrapLatLng(latlng: LatLng): LatLng\r\n \t// Returns a `LatLng` where lat and lng has been wrapped according to the\r\n \t// CRS's `wrapLat` and `wrapLng` properties, if they are outside the CRS's bounds.\r\n \twrapLatLng: function (latlng) {\r\n \t\tvar lng = this.wrapLng ? wrapNum(latlng.lng, this.wrapLng, true) : latlng.lng,\r\n \t\t lat = this.wrapLat ? wrapNum(latlng.lat, this.wrapLat, true) : latlng.lat,\r\n \t\t alt = latlng.alt;\r\n\r\n \t\treturn new LatLng(lat, lng, alt);\r\n \t},\r\n\r\n \t// @method wrapLatLngBounds(bounds: LatLngBounds): LatLngBounds\r\n \t// Returns a `LatLngBounds` with the same size as the given one, ensuring\r\n \t// that its center is within the CRS's bounds.\r\n \t// Only accepts actual `L.LatLngBounds` instances, not arrays.\r\n \twrapLatLngBounds: function (bounds) {\r\n \t\tvar center = bounds.getCenter(),\r\n \t\t newCenter = this.wrapLatLng(center),\r\n \t\t latShift = center.lat - newCenter.lat,\r\n \t\t lngShift = center.lng - newCenter.lng;\r\n\r\n \t\tif (latShift === 0 && lngShift === 0) {\r\n \t\t\treturn bounds;\r\n \t\t}\r\n\r\n \t\tvar sw = bounds.getSouthWest(),\r\n \t\t ne = bounds.getNorthEast(),\r\n \t\t newSw = new LatLng(sw.lat - latShift, sw.lng - lngShift),\r\n \t\t newNe = new LatLng(ne.lat - latShift, ne.lng - lngShift);\r\n\r\n \t\treturn new LatLngBounds(newSw, newNe);\r\n \t}\r\n };\n\n /*\n * @namespace CRS\n * @crs L.CRS.Earth\n *\n * Serves as the base for CRS that are global such that they cover the earth.\n * Can only be used as the base for other CRS and cannot be used directly,\n * since it does not have a `code`, `projection` or `transformation`. `distance()` returns\n * meters.\n */\n\n var Earth = extend({}, CRS, {\n \twrapLng: [-180, 180],\n\n \t// Mean Earth Radius, as recommended for use by\n \t// the International Union of Geodesy and Geophysics,\n \t// see https://rosettacode.org/wiki/Haversine_formula\n \tR: 6371000,\n\n \t// distance between two geographical points using spherical law of cosines approximation\n \tdistance: function (latlng1, latlng2) {\n \t\tvar rad = Math.PI / 180,\n \t\t lat1 = latlng1.lat * rad,\n \t\t lat2 = latlng2.lat * rad,\n \t\t sinDLat = Math.sin((latlng2.lat - latlng1.lat) * rad / 2),\n \t\t sinDLon = Math.sin((latlng2.lng - latlng1.lng) * rad / 2),\n \t\t a = sinDLat * sinDLat + Math.cos(lat1) * Math.cos(lat2) * sinDLon * sinDLon,\n \t\t c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n \t\treturn this.R * c;\n \t}\n });\n\n /*\r\n * @namespace Projection\r\n * @projection L.Projection.SphericalMercator\r\n *\r\n * Spherical Mercator projection — the most common projection for online maps,\r\n * used by almost all free and commercial tile providers. Assumes that Earth is\r\n * a sphere. Used by the `EPSG:3857` CRS.\r\n */\r\n\r\n var earthRadius = 6378137;\r\n\r\n var SphericalMercator = {\r\n\r\n \tR: earthRadius,\r\n \tMAX_LATITUDE: 85.0511287798,\r\n\r\n \tproject: function (latlng) {\r\n \t\tvar d = Math.PI / 180,\r\n \t\t max = this.MAX_LATITUDE,\r\n \t\t lat = Math.max(Math.min(max, latlng.lat), -max),\r\n \t\t sin = Math.sin(lat * d);\r\n\r\n \t\treturn new Point(\r\n \t\t\tthis.R * latlng.lng * d,\r\n \t\t\tthis.R * Math.log((1 + sin) / (1 - sin)) / 2);\r\n \t},\r\n\r\n \tunproject: function (point) {\r\n \t\tvar d = 180 / Math.PI;\r\n\r\n \t\treturn new LatLng(\r\n \t\t\t(2 * Math.atan(Math.exp(point.y / this.R)) - (Math.PI / 2)) * d,\r\n \t\t\tpoint.x * d / this.R);\r\n \t},\r\n\r\n \tbounds: (function () {\r\n \t\tvar d = earthRadius * Math.PI;\r\n \t\treturn new Bounds([-d, -d], [d, d]);\r\n \t})()\r\n };\n\n /*\r\n * @class Transformation\r\n * @aka L.Transformation\r\n *\r\n * Represents an affine transformation: a set of coefficients `a`, `b`, `c`, `d`\r\n * for transforming a point of a form `(x, y)` into `(a*x + b, c*y + d)` and doing\r\n * the reverse. Used by Leaflet in its projections code.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var transformation = L.transformation(2, 5, -1, 10),\r\n * \tp = L.point(1, 2),\r\n * \tp2 = transformation.transform(p), // L.point(7, 8)\r\n * \tp3 = transformation.untransform(p2); // L.point(1, 2)\r\n * ```\r\n */\r\n\r\n\r\n // factory new L.Transformation(a: Number, b: Number, c: Number, d: Number)\r\n // Creates a `Transformation` object with the given coefficients.\r\n function Transformation(a, b, c, d) {\r\n \tif (isArray(a)) {\r\n \t\t// use array properties\r\n \t\tthis._a = a[0];\r\n \t\tthis._b = a[1];\r\n \t\tthis._c = a[2];\r\n \t\tthis._d = a[3];\r\n \t\treturn;\r\n \t}\r\n \tthis._a = a;\r\n \tthis._b = b;\r\n \tthis._c = c;\r\n \tthis._d = d;\r\n }\r\n\r\n Transformation.prototype = {\r\n \t// @method transform(point: Point, scale?: Number): Point\r\n \t// Returns a transformed point, optionally multiplied by the given scale.\r\n \t// Only accepts actual `L.Point` instances, not arrays.\r\n \ttransform: function (point, scale) { // (Point, Number) -> Point\r\n \t\treturn this._transform(point.clone(), scale);\r\n \t},\r\n\r\n \t// destructive transform (faster)\r\n \t_transform: function (point, scale) {\r\n \t\tscale = scale || 1;\r\n \t\tpoint.x = scale * (this._a * point.x + this._b);\r\n \t\tpoint.y = scale * (this._c * point.y + this._d);\r\n \t\treturn point;\r\n \t},\r\n\r\n \t// @method untransform(point: Point, scale?: Number): Point\r\n \t// Returns the reverse transformation of the given point, optionally divided\r\n \t// by the given scale. Only accepts actual `L.Point` instances, not arrays.\r\n \tuntransform: function (point, scale) {\r\n \t\tscale = scale || 1;\r\n \t\treturn new Point(\r\n \t\t (point.x / scale - this._b) / this._a,\r\n \t\t (point.y / scale - this._d) / this._c);\r\n \t}\r\n };\r\n\r\n // factory L.transformation(a: Number, b: Number, c: Number, d: Number)\r\n\r\n // @factory L.transformation(a: Number, b: Number, c: Number, d: Number)\r\n // Instantiates a Transformation object with the given coefficients.\r\n\r\n // @alternative\r\n // @factory L.transformation(coefficients: Array): Transformation\r\n // Expects an coefficients array of the form\r\n // `[a: Number, b: Number, c: Number, d: Number]`.\r\n\r\n function toTransformation(a, b, c, d) {\r\n \treturn new Transformation(a, b, c, d);\r\n }\n\n /*\r\n * @namespace CRS\r\n * @crs L.CRS.EPSG3857\r\n *\r\n * The most common CRS for online maps, used by almost all free and commercial\r\n * tile providers. Uses Spherical Mercator projection. Set in by default in\r\n * Map's `crs` option.\r\n */\r\n\r\n var EPSG3857 = extend({}, Earth, {\r\n \tcode: 'EPSG:3857',\r\n \tprojection: SphericalMercator,\r\n\r\n \ttransformation: (function () {\r\n \t\tvar scale = 0.5 / (Math.PI * SphericalMercator.R);\r\n \t\treturn toTransformation(scale, 0.5, -scale, 0.5);\r\n \t}())\r\n });\r\n\r\n var EPSG900913 = extend({}, EPSG3857, {\r\n \tcode: 'EPSG:900913'\r\n });\n\n // @namespace SVG; @section\n // There are several static functions which can be called without instantiating L.SVG:\n\n // @function create(name: String): SVGElement\n // Returns a instance of [SVGElement](https://developer.mozilla.org/docs/Web/API/SVGElement),\n // corresponding to the class name passed. For example, using 'line' will return\n // an instance of [SVGLineElement](https://developer.mozilla.org/docs/Web/API/SVGLineElement).\n function svgCreate(name) {\n \treturn document.createElementNS('http://www.w3.org/2000/svg', name);\n }\n\n // @function pointsToPath(rings: Point[], closed: Boolean): String\n // Generates a SVG path string for multiple rings, with each ring turning\n // into \"M..L..L..\" instructions\n function pointsToPath(rings, closed) {\n \tvar str = '',\n \ti, j, len, len2, points, p;\n\n \tfor (i = 0, len = rings.length; i < len; i++) {\n \t\tpoints = rings[i];\n\n \t\tfor (j = 0, len2 = points.length; j < len2; j++) {\n \t\t\tp = points[j];\n \t\t\tstr += (j ? 'L' : 'M') + p.x + ' ' + p.y;\n \t\t}\n\n \t\t// closes the ring for polygons; \"x\" is VML syntax\n \t\tstr += closed ? (Browser.svg ? 'z' : 'x') : '';\n \t}\n\n \t// SVG complains about empty path strings\n \treturn str || 'M0 0';\n }\n\n /*\r\n * @namespace Browser\r\n * @aka L.Browser\r\n *\r\n * A namespace with static properties for browser/feature detection used by Leaflet internally.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * if (L.Browser.ielt9) {\r\n * alert('Upgrade your browser, dude!');\r\n * }\r\n * ```\r\n */\r\n\r\n var style = document.documentElement.style;\r\n\r\n // @property ie: Boolean; `true` for all Internet Explorer versions (not Edge).\r\n var ie = 'ActiveXObject' in window;\r\n\r\n // @property ielt9: Boolean; `true` for Internet Explorer versions less than 9.\r\n var ielt9 = ie && !document.addEventListener;\r\n\r\n // @property edge: Boolean; `true` for the Edge web browser.\r\n var edge = 'msLaunchUri' in navigator && !('documentMode' in document);\r\n\r\n // @property webkit: Boolean;\r\n // `true` for webkit-based browsers like Chrome and Safari (including mobile versions).\r\n var webkit = userAgentContains('webkit');\r\n\r\n // @property android: Boolean\r\n // **Deprecated.** `true` for any browser running on an Android platform.\r\n var android = userAgentContains('android');\r\n\r\n // @property android23: Boolean; **Deprecated.** `true` for browsers running on Android 2 or Android 3.\r\n var android23 = userAgentContains('android 2') || userAgentContains('android 3');\r\n\r\n /* See https://stackoverflow.com/a/17961266 for details on detecting stock Android */\r\n var webkitVer = parseInt(/WebKit\\/([0-9]+)|$/.exec(navigator.userAgent)[1], 10); // also matches AppleWebKit\r\n // @property androidStock: Boolean; **Deprecated.** `true` for the Android stock browser (i.e. not Chrome)\r\n var androidStock = android && userAgentContains('Google') && webkitVer < 537 && !('AudioNode' in window);\r\n\r\n // @property opera: Boolean; `true` for the Opera browser\r\n var opera = !!window.opera;\r\n\r\n // @property chrome: Boolean; `true` for the Chrome browser.\r\n var chrome = !edge && userAgentContains('chrome');\r\n\r\n // @property gecko: Boolean; `true` for gecko-based browsers like Firefox.\r\n var gecko = userAgentContains('gecko') && !webkit && !opera && !ie;\r\n\r\n // @property safari: Boolean; `true` for the Safari browser.\r\n var safari = !chrome && userAgentContains('safari');\r\n\r\n var phantom = userAgentContains('phantom');\r\n\r\n // @property opera12: Boolean\r\n // `true` for the Opera browser supporting CSS transforms (version 12 or later).\r\n var opera12 = 'OTransition' in style;\r\n\r\n // @property win: Boolean; `true` when the browser is running in a Windows platform\r\n var win = navigator.platform.indexOf('Win') === 0;\r\n\r\n // @property ie3d: Boolean; `true` for all Internet Explorer versions supporting CSS transforms.\r\n var ie3d = ie && ('transition' in style);\r\n\r\n // @property webkit3d: Boolean; `true` for webkit-based browsers supporting CSS transforms.\r\n var webkit3d = ('WebKitCSSMatrix' in window) && ('m11' in new window.WebKitCSSMatrix()) && !android23;\r\n\r\n // @property gecko3d: Boolean; `true` for gecko-based browsers supporting CSS transforms.\r\n var gecko3d = 'MozPerspective' in style;\r\n\r\n // @property any3d: Boolean\r\n // `true` for all browsers supporting CSS transforms.\r\n var any3d = !window.L_DISABLE_3D && (ie3d || webkit3d || gecko3d) && !opera12 && !phantom;\r\n\r\n // @property mobile: Boolean; `true` for all browsers running in a mobile device.\r\n var mobile = typeof orientation !== 'undefined' || userAgentContains('mobile');\r\n\r\n // @property mobileWebkit: Boolean; `true` for all webkit-based browsers in a mobile device.\r\n var mobileWebkit = mobile && webkit;\r\n\r\n // @property mobileWebkit3d: Boolean\r\n // `true` for all webkit-based browsers in a mobile device supporting CSS transforms.\r\n var mobileWebkit3d = mobile && webkit3d;\r\n\r\n // @property msPointer: Boolean\r\n // `true` for browsers implementing the Microsoft touch events model (notably IE10).\r\n var msPointer = !window.PointerEvent && window.MSPointerEvent;\r\n\r\n // @property pointer: Boolean\r\n // `true` for all browsers supporting [pointer events](https://msdn.microsoft.com/en-us/library/dn433244%28v=vs.85%29.aspx).\r\n var pointer = !!(window.PointerEvent || msPointer);\r\n\r\n // @property touchNative: Boolean\r\n // `true` for all browsers supporting [touch events](https://developer.mozilla.org/docs/Web/API/Touch_events).\r\n // **This does not necessarily mean** that the browser is running in a computer with\r\n // a touchscreen, it only means that the browser is capable of understanding\r\n // touch events.\r\n var touchNative = 'ontouchstart' in window || !!window.TouchEvent;\r\n\r\n // @property touch: Boolean\r\n // `true` for all browsers supporting either [touch](#browser-touch) or [pointer](#browser-pointer) events.\r\n // Note: pointer events will be preferred (if available), and processed for all `touch*` listeners.\r\n var touch = !window.L_NO_TOUCH && (touchNative || pointer);\r\n\r\n // @property mobileOpera: Boolean; `true` for the Opera browser in a mobile device.\r\n var mobileOpera = mobile && opera;\r\n\r\n // @property mobileGecko: Boolean\r\n // `true` for gecko-based browsers running in a mobile device.\r\n var mobileGecko = mobile && gecko;\r\n\r\n // @property retina: Boolean\r\n // `true` for browsers on a high-resolution \"retina\" screen or on any screen when browser's display zoom is more than 100%.\r\n var retina = (window.devicePixelRatio || (window.screen.deviceXDPI / window.screen.logicalXDPI)) > 1;\r\n\r\n // @property passiveEvents: Boolean\r\n // `true` for browsers that support passive events.\r\n var passiveEvents = (function () {\r\n \tvar supportsPassiveOption = false;\r\n \ttry {\r\n \t\tvar opts = Object.defineProperty({}, 'passive', {\r\n \t\t\tget: function () { // eslint-disable-line getter-return\r\n \t\t\t\tsupportsPassiveOption = true;\r\n \t\t\t}\r\n \t\t});\r\n \t\twindow.addEventListener('testPassiveEventSupport', falseFn, opts);\r\n \t\twindow.removeEventListener('testPassiveEventSupport', falseFn, opts);\r\n \t} catch (e) {\r\n \t\t// Errors can safely be ignored since this is only a browser support test.\r\n \t}\r\n \treturn supportsPassiveOption;\r\n }());\r\n\r\n // @property canvas: Boolean\r\n // `true` when the browser supports [``](https://developer.mozilla.org/docs/Web/API/Canvas_API).\r\n var canvas$1 = (function () {\r\n \treturn !!document.createElement('canvas').getContext;\r\n }());\r\n\r\n // @property svg: Boolean\r\n // `true` when the browser supports [SVG](https://developer.mozilla.org/docs/Web/SVG).\r\n var svg$1 = !!(document.createElementNS && svgCreate('svg').createSVGRect);\r\n\r\n var inlineSvg = !!svg$1 && (function () {\r\n \tvar div = document.createElement('div');\r\n \tdiv.innerHTML = '';\r\n \treturn (div.firstChild && div.firstChild.namespaceURI) === 'http://www.w3.org/2000/svg';\r\n })();\r\n\r\n // @property vml: Boolean\r\n // `true` if the browser supports [VML](https://en.wikipedia.org/wiki/Vector_Markup_Language).\r\n var vml = !svg$1 && (function () {\r\n \ttry {\r\n \t\tvar div = document.createElement('div');\r\n \t\tdiv.innerHTML = '';\r\n\r\n \t\tvar shape = div.firstChild;\r\n \t\tshape.style.behavior = 'url(#default#VML)';\r\n\r\n \t\treturn shape && (typeof shape.adj === 'object');\r\n\r\n \t} catch (e) {\r\n \t\treturn false;\r\n \t}\r\n }());\r\n\r\n\r\n // @property mac: Boolean; `true` when the browser is running in a Mac platform\r\n var mac = navigator.platform.indexOf('Mac') === 0;\r\n\r\n // @property mac: Boolean; `true` when the browser is running in a Linux platform\r\n var linux = navigator.platform.indexOf('Linux') === 0;\r\n\r\n function userAgentContains(str) {\r\n \treturn navigator.userAgent.toLowerCase().indexOf(str) >= 0;\r\n }\r\n\r\n\r\n var Browser = {\r\n \tie: ie,\r\n \tielt9: ielt9,\r\n \tedge: edge,\r\n \twebkit: webkit,\r\n \tandroid: android,\r\n \tandroid23: android23,\r\n \tandroidStock: androidStock,\r\n \topera: opera,\r\n \tchrome: chrome,\r\n \tgecko: gecko,\r\n \tsafari: safari,\r\n \tphantom: phantom,\r\n \topera12: opera12,\r\n \twin: win,\r\n \tie3d: ie3d,\r\n \twebkit3d: webkit3d,\r\n \tgecko3d: gecko3d,\r\n \tany3d: any3d,\r\n \tmobile: mobile,\r\n \tmobileWebkit: mobileWebkit,\r\n \tmobileWebkit3d: mobileWebkit3d,\r\n \tmsPointer: msPointer,\r\n \tpointer: pointer,\r\n \ttouch: touch,\r\n \ttouchNative: touchNative,\r\n \tmobileOpera: mobileOpera,\r\n \tmobileGecko: mobileGecko,\r\n \tretina: retina,\r\n \tpassiveEvents: passiveEvents,\r\n \tcanvas: canvas$1,\r\n \tsvg: svg$1,\r\n \tvml: vml,\r\n \tinlineSvg: inlineSvg,\r\n \tmac: mac,\r\n \tlinux: linux\r\n };\n\n /*\n * Extends L.DomEvent to provide touch support for Internet Explorer and Windows-based devices.\n */\n\n var POINTER_DOWN = Browser.msPointer ? 'MSPointerDown' : 'pointerdown';\n var POINTER_MOVE = Browser.msPointer ? 'MSPointerMove' : 'pointermove';\n var POINTER_UP = Browser.msPointer ? 'MSPointerUp' : 'pointerup';\n var POINTER_CANCEL = Browser.msPointer ? 'MSPointerCancel' : 'pointercancel';\n var pEvent = {\n \ttouchstart : POINTER_DOWN,\n \ttouchmove : POINTER_MOVE,\n \ttouchend : POINTER_UP,\n \ttouchcancel : POINTER_CANCEL\n };\n var handle = {\n \ttouchstart : _onPointerStart,\n \ttouchmove : _handlePointer,\n \ttouchend : _handlePointer,\n \ttouchcancel : _handlePointer\n };\n var _pointers = {};\n var _pointerDocListener = false;\n\n // Provides a touch events wrapper for (ms)pointer events.\n // ref https://www.w3.org/TR/pointerevents/ https://www.w3.org/Bugs/Public/show_bug.cgi?id=22890\n\n function addPointerListener(obj, type, handler) {\n \tif (type === 'touchstart') {\n \t\t_addPointerDocListener();\n \t}\n \tif (!handle[type]) {\n \t\tconsole.warn('wrong event specified:', type);\n \t\treturn falseFn;\n \t}\n \thandler = handle[type].bind(this, handler);\n \tobj.addEventListener(pEvent[type], handler, false);\n \treturn handler;\n }\n\n function removePointerListener(obj, type, handler) {\n \tif (!pEvent[type]) {\n \t\tconsole.warn('wrong event specified:', type);\n \t\treturn;\n \t}\n \tobj.removeEventListener(pEvent[type], handler, false);\n }\n\n function _globalPointerDown(e) {\n \t_pointers[e.pointerId] = e;\n }\n\n function _globalPointerMove(e) {\n \tif (_pointers[e.pointerId]) {\n \t\t_pointers[e.pointerId] = e;\n \t}\n }\n\n function _globalPointerUp(e) {\n \tdelete _pointers[e.pointerId];\n }\n\n function _addPointerDocListener() {\n \t// need to keep track of what pointers and how many are active to provide e.touches emulation\n \tif (!_pointerDocListener) {\n \t\t// we listen document as any drags that end by moving the touch off the screen get fired there\n \t\tdocument.addEventListener(POINTER_DOWN, _globalPointerDown, true);\n \t\tdocument.addEventListener(POINTER_MOVE, _globalPointerMove, true);\n \t\tdocument.addEventListener(POINTER_UP, _globalPointerUp, true);\n \t\tdocument.addEventListener(POINTER_CANCEL, _globalPointerUp, true);\n\n \t\t_pointerDocListener = true;\n \t}\n }\n\n function _handlePointer(handler, e) {\n \tif (e.pointerType === (e.MSPOINTER_TYPE_MOUSE || 'mouse')) { return; }\n\n \te.touches = [];\n \tfor (var i in _pointers) {\n \t\te.touches.push(_pointers[i]);\n \t}\n \te.changedTouches = [e];\n\n \thandler(e);\n }\n\n function _onPointerStart(handler, e) {\n \t// IE10 specific: MsTouch needs preventDefault. See #2000\n \tif (e.MSPOINTER_TYPE_TOUCH && e.pointerType === e.MSPOINTER_TYPE_TOUCH) {\n \t\tpreventDefault(e);\n \t}\n \t_handlePointer(handler, e);\n }\n\n /*\r\n * Extends the event handling code with double tap support for mobile browsers.\r\n *\r\n * Note: currently most browsers fire native dblclick, with only a few exceptions\r\n * (see https://github.com/Leaflet/Leaflet/issues/7012#issuecomment-595087386)\r\n */\r\n\r\n function makeDblclick(event) {\r\n \t// in modern browsers `type` cannot be just overridden:\r\n \t// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Getter_only\r\n \tvar newEvent = {},\r\n \t prop, i;\r\n \tfor (i in event) {\r\n \t\tprop = event[i];\r\n \t\tnewEvent[i] = prop && prop.bind ? prop.bind(event) : prop;\r\n \t}\r\n \tevent = newEvent;\r\n \tnewEvent.type = 'dblclick';\r\n \tnewEvent.detail = 2;\r\n \tnewEvent.isTrusted = false;\r\n \tnewEvent._simulated = true; // for debug purposes\r\n \treturn newEvent;\r\n }\r\n\r\n var delay = 200;\r\n function addDoubleTapListener(obj, handler) {\r\n \t// Most browsers handle double tap natively\r\n \tobj.addEventListener('dblclick', handler);\r\n\r\n \t// On some platforms the browser doesn't fire native dblclicks for touch events.\r\n \t// It seems that in all such cases `detail` property of `click` event is always `1`.\r\n \t// So here we rely on that fact to avoid excessive 'dblclick' simulation when not needed.\r\n \tvar last = 0,\r\n \t detail;\r\n \tfunction simDblclick(e) {\r\n \t\tif (e.detail !== 1) {\r\n \t\t\tdetail = e.detail; // keep in sync to avoid false dblclick in some cases\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\tif (e.pointerType === 'mouse' ||\r\n \t\t\t(e.sourceCapabilities && !e.sourceCapabilities.firesTouchEvents)) {\r\n\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\t// When clicking on an , the browser generates a click on its\r\n \t\t//