sovereign 0.14.2__py3-none-any.whl → 1.0.0a4__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of sovereign might be problematic. Click here for more details.
- sovereign/__init__.py +17 -78
- sovereign/app.py +74 -59
- sovereign/cache/__init__.py +245 -0
- sovereign/cache/backends/__init__.py +110 -0
- sovereign/cache/backends/s3.py +161 -0
- sovereign/cache/filesystem.py +74 -0
- sovereign/cache/types.py +17 -0
- sovereign/configuration.py +607 -0
- sovereign/constants.py +1 -0
- sovereign/context.py +271 -100
- sovereign/dynamic_config/__init__.py +112 -0
- sovereign/dynamic_config/deser.py +78 -0
- sovereign/dynamic_config/loaders.py +120 -0
- sovereign/error_info.py +61 -0
- sovereign/events.py +49 -0
- sovereign/logging/access_logger.py +85 -0
- sovereign/logging/application_logger.py +54 -0
- sovereign/logging/base_logger.py +41 -0
- sovereign/logging/bootstrapper.py +36 -0
- sovereign/logging/types.py +10 -0
- sovereign/middlewares.py +8 -7
- sovereign/modifiers/lib.py +2 -1
- sovereign/rendering.py +124 -0
- sovereign/rendering_common.py +91 -0
- sovereign/response_class.py +18 -0
- sovereign/server.py +123 -28
- sovereign/statistics.py +19 -21
- sovereign/templates/base.html +59 -46
- sovereign/templates/resources.html +203 -102
- sovereign/testing/loaders.py +9 -0
- sovereign/{modifiers/test.py → testing/modifiers.py} +0 -2
- sovereign/tracing.py +103 -0
- sovereign/types.py +304 -0
- sovereign/utils/auth.py +27 -13
- sovereign/utils/crypto/__init__.py +0 -0
- sovereign/utils/crypto/crypto.py +135 -0
- sovereign/utils/crypto/suites/__init__.py +21 -0
- sovereign/utils/crypto/suites/aes_gcm_cipher.py +42 -0
- sovereign/utils/crypto/suites/base_cipher.py +21 -0
- sovereign/utils/crypto/suites/disabled_cipher.py +25 -0
- sovereign/utils/crypto/suites/fernet_cipher.py +29 -0
- sovereign/utils/dictupdate.py +3 -2
- sovereign/utils/eds.py +40 -22
- sovereign/utils/entry_point_loader.py +18 -0
- sovereign/utils/mock.py +60 -17
- sovereign/utils/resources.py +17 -0
- sovereign/utils/templates.py +4 -2
- sovereign/utils/timer.py +5 -3
- sovereign/utils/version_info.py +8 -0
- sovereign/utils/weighted_clusters.py +2 -1
- sovereign/v2/__init__.py +0 -0
- sovereign/v2/data/data_store.py +621 -0
- sovereign/v2/data/render_discovery_response.py +24 -0
- sovereign/v2/data/repositories.py +90 -0
- sovereign/v2/data/utils.py +33 -0
- sovereign/v2/data/worker_queue.py +273 -0
- sovereign/v2/jobs/refresh_context.py +117 -0
- sovereign/v2/jobs/render_discovery_job.py +145 -0
- sovereign/v2/logging.py +81 -0
- sovereign/v2/types.py +41 -0
- sovereign/v2/web.py +101 -0
- sovereign/v2/worker.py +199 -0
- sovereign/views/__init__.py +7 -0
- sovereign/views/api.py +82 -0
- sovereign/views/crypto.py +46 -15
- sovereign/views/discovery.py +52 -67
- sovereign/views/healthchecks.py +107 -20
- sovereign/views/interface.py +173 -117
- sovereign/worker.py +193 -0
- {sovereign-0.14.2.dist-info → sovereign-1.0.0a4.dist-info}/METADATA +81 -73
- sovereign-1.0.0a4.dist-info/RECORD +85 -0
- {sovereign-0.14.2.dist-info → sovereign-1.0.0a4.dist-info}/WHEEL +1 -1
- sovereign-1.0.0a4.dist-info/entry_points.txt +46 -0
- sovereign_files/__init__.py +0 -0
- sovereign_files/static/darkmode.js +51 -0
- sovereign_files/static/node_expression.js +42 -0
- sovereign_files/static/panel.js +76 -0
- sovereign_files/static/resources.css +246 -0
- sovereign_files/static/resources.js +642 -0
- sovereign_files/static/sass/style.scss +33 -0
- sovereign_files/static/style.css +16143 -0
- sovereign_files/static/style.css.map +1 -0
- sovereign/config_loader.py +0 -225
- sovereign/discovery.py +0 -175
- sovereign/logs.py +0 -131
- sovereign/schemas.py +0 -715
- sovereign/sources/__init__.py +0 -3
- sovereign/sources/file.py +0 -21
- sovereign/sources/inline.py +0 -38
- sovereign/sources/lib.py +0 -40
- sovereign/sources/poller.py +0 -298
- sovereign/static/sass/style.scss +0 -27
- sovereign/static/style.css +0 -13553
- sovereign/templates/ul_filter.html +0 -22
- sovereign/utils/crypto.py +0 -64
- sovereign/views/admin.py +0 -120
- sovereign-0.14.2.dist-info/LICENSE.txt +0 -13
- sovereign-0.14.2.dist-info/RECORD +0 -45
- sovereign-0.14.2.dist-info/entry_points.txt +0 -10
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../../../node_modules/bulma/sass/utilities/_index.scss","sass/style.scss","../../../node_modules/bulma/sass/utilities/controls.scss","../../../node_modules/bulma/sass/utilities/css-variables.scss","../../../node_modules/bulma/sass/base/_index.scss","../../../node_modules/bulma/sass/base/minireset.scss","../../../node_modules/bulma/sass/base/generic.scss","../../../node_modules/bulma/sass/utilities/mixins.scss","../../../node_modules/bulma/sass/base/animations.scss","../../../node_modules/bulma/sass/utilities/extends.scss","../../../node_modules/bulma/sass/elements/tag.scss","../../../node_modules/bulma/sass/elements/notification.scss","../../../node_modules/bulma/sass/elements/button.scss","../../../node_modules/bulma/sass/elements/content.scss","../../../node_modules/bulma/sass/elements/title.scss","../../../node_modules/bulma/sass/utilities/derived-variables.scss","../../../node_modules/bulma/sass/components/navbar.scss","../../../node_modules/bulma/sass/components/panel.scss","../../../node_modules/bulma/sass/components/pagination.scss","../../../node_modules/bulma/sass/components/dropdown.scss","../../../node_modules/bulma/sass/grid/columns.scss","../../../node_modules/bulma/sass/form/_index.scss","../../../node_modules/bulma/sass/form/shared.scss","../../../node_modules/bulma/sass/form/input-textarea.scss","../../../node_modules/bulma/sass/form/checkbox-radio.scss","../../../node_modules/bulma/sass/form/select.scss","../../../node_modules/bulma/sass/form/file.scss","../../../node_modules/bulma/sass/form/tools.scss","../../../node_modules/bulma/sass/helpers/_index.scss","../../../node_modules/bulma/sass/helpers/aspect-ratio.scss","../../../node_modules/bulma/sass/helpers/border.scss","../../../node_modules/bulma/sass/helpers/color.scss","../../../node_modules/bulma/sass/helpers/flexbox.scss","../../../node_modules/bulma/sass/helpers/float.scss","../../../node_modules/bulma/sass/helpers/gap.scss","../../../node_modules/bulma/sass/helpers/overflow.scss","../../../node_modules/bulma/sass/helpers/position.scss","../../../node_modules/bulma/sass/helpers/spacing.scss","../../../node_modules/bulma/sass/helpers/typography.scss","../../../node_modules/bulma/sass/helpers/visibility.scss","../../../node_modules/bulma/sass/helpers/other.scss","../../../node_modules/bulma/sass/themes/_index.scss"],"names":[],"mappings":"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AGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAIA;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;;Ab6CN;EavCE;IAEE;IACA;;EAGF;IAEE;IACA;;EAGF;IAEE;IACA;;EAGF;IAEE;IACA;;EAGF;IAEE;IACA;;EAGF;IAEE;IACA;;EAGF;IAEE;IACA;;EAGF;IAEE;IACA;;EAGF;IAEE;IACA;;EAGF;IAEE;IACA;;EAGF;IAEE;IACA;;EAGF;IAEE;;EAGF;IAEE;;EAGF;IAEE;;EAGF;IAEE;;EAGF;IAEE;;EAGF;IAEE;;EAGF;IAEE;;EAGF;IAEE;;EAGF;IAEE;;EAIA;IAEE;IACA;;EAGF;IAEE;;EARF;IAEE;IACA;;EAGF;IAEE;;EARF;IAEE;IACA;;EAGF;IAEE;;EARF;IAEE;IACA;;EAGF;IAEE;;EARF;IAEE;IACA;;EAGF;IAEE;;EARF;IAEE;IACA;;EAGF;IAEE;;EARF;IAEE;IACA;;EAGF;IAEE;;EARF;IAEE;IACA;;EAGF;IAEE;;EARF;IAEE;IACA;;EAGF;IAEE;;EARF;IAEE;IACA;;EAGF;IAEE;;EARF;IAEE;IACA;;EAGF;IAEE;;EARF;IAEE;IACA;;EAGF;IAEE;;EARF;IAEE;IACA;;EAGF;IAEE;;;AbrEN;Ea2EE;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAIA;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;;AbvKN;Ea6KE;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAIA;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;;AbxPJ;Ea8PA;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAIA;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;;AbxUJ;Ea8UA;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;IACA;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAGF;IACE;;EAIA;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;EANF;IACE;IACA;;EAGF;IACE;;;;AAMR;EACE;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAMF;EACE;;AAGF;EACE;EACA;EAEA;;AAEA;EACE;EACA;;AAGF;EACE;;AAGF;EACE;;AAIJ;EACE;;AAGF;EACE;;AAGF;EACE;;AbxiBF;Ea6iBE;IACE;;;Ab5hBJ;EakiBE;IACE;;;AAKF;EjBxzBF;;AIwPA;EaykBI;IjBj0BJ;;;AI8PA;Ea6kBI;IjB30BJ;;;AIoQA;EailBI;IjBr1BJ;;;AI0QA;EaqlBI;IjB/1BJ;;;AIgRA;EaylBI;IjBz2BJ;;;AIuRE;Ea4lBE;IjBn3BJ;;;AIuSE;EaslBE;IjB73BJ;;;AI+SE;EawlBE;IjBv4BJ;;;AI+TE;EaklBE;IjBj5BJ;;;AiBwzBE;EjBxzBF;;AIwPA;EaykBI;IjBj0BJ;;;AI8PA;Ea6kBI;IjB30BJ;;;AIoQA;EailBI;IjBr1BJ;;;AI0QA;EaqlBI;IjB/1BJ;;;AIgRA;EaylBI;IjBz2BJ;;;AIuRE;Ea4lBE;IjBn3BJ;;;AIuSE;EaslBE;IjB73BJ;;;AI+SE;EawlBE;IjBv4BJ;;;AI+TE;EaklBE;IjBj5BJ;;;AiBwzBE;EjBxzBF;;AIwPA;EaykBI;IjBj0BJ;;;AI8PA;Ea6kBI;IjB30BJ;;;AIoQA;EailBI;IjBr1BJ;;;AI0QA;EaqlBI;IjB/1BJ;;;AIgRA;EaylBI;IjBz2BJ;;;AIuRE;Ea4lBE;IjBn3BJ;;;AIuSE;EaslBE;IjB73BJ;;;AI+SE;EawlBE;IjBv4BJ;;;AI+TE;EaklBE;IjBj5BJ;;;AiBwzBE;EjBxzBF;;AIwPA;EaykBI;IjBj0BJ;;;AI8PA;Ea6kBI;IjB30BJ;;;AIoQA;EailBI;IjBr1BJ;;;AI0QA;EaqlBI;IjB/1BJ;;;AIgRA;EaylBI;IjBz2BJ;;;AIuRE;Ea4lBE;IjBn3BJ;;;AIuSE;EaslBE;IjB73BJ;;;AI+SE;EawlBE;IjBv4BJ;;;AI+TE;EaklBE;IjBj5BJ;;;AiBwzBE;EjBxzBF;;AIwPA;EaykBI;IjBj0BJ;;;AI8PA;Ea6kBI;IjB30BJ;;;AIoQA;EailBI;IjBr1BJ;;;AI0QA;EaqlBI;IjB/1BJ;;;AIgRA;EaylBI;IjBz2BJ;;;AIuRE;Ea4lBE;IjBn3BJ;;;AIuSE;EaslBE;IjB73BJ;;;AI+SE;EawlBE;IjBv4BJ;;;AI+TE;EaklBE;IjBj5BJ;;;AiBwzBE;EjBxzBF;;AIwPA;EaykBI;IjBj0BJ;;;AI8PA;Ea6kBI;IjB30BJ;;;AIoQA;EailBI;IjBr1BJ;;;AI0QA;EaqlBI;IjB/1BJ;;;AIgRA;EaylBI;IjBz2BJ;;;AIuRE;Ea4lBE;IjBn3BJ;;;AIuSE;EaslBE;IjB73BJ;;;AI+SE;EawlBE;IjBv4BJ;;;AI+TE;EaklBE;IjBj5BJ;;;AiBwzBE;EjBxzBF;;AIwPA;EaykBI;IjBj0BJ;;;AI8PA;Ea6kBI;IjB30BJ;;;AIoQA;EailBI;IjBr1BJ;;;AI0QA;EaqlBI;IjB/1BJ;;;AIgRA;EaylBI;IjBz2BJ;;;AIuRE;Ea4lBE;IjBn3BJ;;;AIuSE;EaslBE;IjB73BJ;;;AI+SE;EawlBE;IjBv4BJ;;;AI+TE;EaklBE;IjBj5BJ;;;AiBwzBE;EjBxzBF;;AIwPA;EaykBI;IjBj0BJ;;;AI8PA;Ea6kBI;IjB30BJ;;;AIoQA;EailBI;IjBr1BJ;;;AI0QA;EaqlBI;IjB/1BJ;;;AIgRA;EaylBI;IjBz2BJ;;;AIuRE;Ea4lBE;IjBn3BJ;;;AIuSE;EaslBE;IjB73BJ;;;AI+SE;EawlBE;IjBv4BJ;;;AI+TE;EaklBE;IjBj5BJ;;;AiBwzBE;EjBxzBF;;AIwPA;EaykBI;IjBj0BJ;;;AI8PA;Ea6kBI;IjB30BJ;;;AIoQA;EailBI;IjBr1BJ;;;AI0QA;EaqlBI;IjB/1BJ;;;AIgRA;EaylBI;IjBz2BJ;;;AIuRE;Ea4lBE;IjBn3BJ;;;AIuSE;EaslBE;IjB73BJ;;;AI+SE;EawlBE;IjBv4BJ;;;AI+TE;EaklBE;IjBj5BJ;;;;AkBtCF;ACgEA;AAAA;AAAA;AAAA;EnB1BE;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;;;AmByIF;EArEE;EASA;EACA;EACA;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A;EACE;;;AAYJ;EACE;EACA;EACA;EACA;EAGE;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;;;AA7QJ;EACE;;;AAGF;EACE;;;AAIF;EACE;;;AAOF;EACE;;;AAQF;EACE;;;AAOF;EACE;;;AAQF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAQF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAQF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAQA;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAYF;AAAA;AAAA;AAAA;AAAA;EAEE;;AASF;AAAA;AAAA;EACE;;;AAaF;AAAA;AAAA;AAAA;AAAA;EAEE;;AAUF;AAAA;AAAA;EACE;;;AAYJ;EACE;EACA;EACA;EACA;EAGE;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;;;AA7QJ;EACE;;;AAGF;EACE;;;AAIF;EACE;;;AAOF;EACE;;;AAQF;EACE;;;AAOF;EACE;;;AAQF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAQF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAQF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAQA;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAYF;AAAA;AAAA;AAAA;AAAA;EAEE;;AASF;AAAA;AAAA;EACE;;;AAaF;AAAA;AAAA;AAAA;AAAA;EAEE;;AAUF;AAAA;AAAA;EACE;;;AAYJ;EACE;EACA;EACA;EACA;EAGE;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;;;AA7QJ;EACE;;;AAGF;EACE;;;AAIF;EACE;;;AAOF;EACE;;;AAQF;EACE;;;AAOF;EACE;;;AAQF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAQF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAQF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAQA;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAYF;AAAA;AAAA;AAAA;AAAA;EAEE;;AASF;AAAA;AAAA;EACE;;;AAaF;AAAA;AAAA;AAAA;AAAA;EAEE;;AAUF;AAAA;AAAA;EACE;;;AAYJ;EACE;EACA;EACA;EACA;EAGE;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;;;AA7QJ;EACE;;;AAGF;EACE;;;AAIF;EACE;;;AAOF;EACE;;;AAQF;EACE;;;AAOF;EACE;;;AAQF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAQF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAQF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAQA;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAYF;AAAA;AAAA;AAAA;AAAA;EAEE;;AASF;AAAA;AAAA;EACE;;;AAaF;AAAA;AAAA;AAAA;AAAA;EAEE;;AAUF;AAAA;AAAA;EACE;;;AAYJ;EACE;EACA;EACA;EACA;EAGE;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;;;AA7QJ;EACE;;;AAGF;EACE;;;AAIF;EACE;;;AAOF;EACE;;;AAQF;EACE;;;AAOF;EACE;;;AAQF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAQF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAQF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAQA;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAYF;AAAA;AAAA;AAAA;AAAA;EAEE;;AASF;AAAA;AAAA;EACE;;;AAaF;AAAA;AAAA;AAAA;AAAA;EAEE;;AAUF;AAAA;AAAA;EACE;;;AAYJ;EACE;EACA;EACA;EACA;EAGE;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;;;AA7QJ;EACE;;;AAGF;EACE;;;AAIF;EACE;;;AAOF;EACE;;;AAQF;EACE;;;AAOF;EACE;;;AAQF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAQF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAQF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAQA;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAYF;AAAA;AAAA;AAAA;AAAA;EAEE;;AASF;AAAA;AAAA;EACE;;;AAaF;AAAA;AAAA;AAAA;AAAA;EAEE;;AAUF;AAAA;AAAA;EACE;;;AAYJ;EACE;EACA;EACA;EACA;EAGE;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;;;AA7QJ;EACE;;;AAGF;EACE;;;AAIF;EACE;;;AAOF;EACE;;;AAQF;EACE;;;AAOF;EACE;;;AAQF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAQF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAQF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAQA;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAYF;AAAA;AAAA;AAAA;AAAA;EAEE;;AASF;AAAA;AAAA;EACE;;;AAaF;AAAA;AAAA;AAAA;AAAA;EAEE;;AAUF;AAAA;AAAA;EACE;;;AAYJ;EACE;EACA;EACA;EACA;EAGE;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;;;AA7QJ;EACE;;;AAGF;EACE;;;AAIF;EACE;;;AAOF;EACE;;;AAQF;EACE;;;AAOF;EACE;;;AAQF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAQF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAQF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAQA;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAYF;AAAA;AAAA;AAAA;AAAA;EAEE;;AASF;AAAA;AAAA;EACE;;;AAaF;AAAA;AAAA;AAAA;AAAA;EAEE;;AAUF;AAAA;AAAA;EACE;;;AAYJ;EACE;EACA;EACA;EACA;EAGE;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;;;AA7QJ;EACE;;;AAGF;EACE;;;AAIF;EACE;;;AAOF;EACE;;;AAQF;EACE;;;AAOF;EACE;;;AAQF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAQF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAQF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAQA;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAYF;AAAA;AAAA;AAAA;AAAA;EAEE;;AASF;AAAA;AAAA;EACE;;;AAaF;AAAA;AAAA;AAAA;AAAA;EAEE;;AAUF;AAAA;AAAA;EACE;;;AAYJ;EACE;EACA;EACA;EACA;EAGE;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;;;AA7QJ;EACE;;;AAGF;EACE;;;AAIF;EACE;;;AAOF;EACE;;;AAQF;EACE;;;AAOF;EACE;;;AAQF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAQF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAQF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAQA;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAzBF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAOF;EACE;;;AAYF;AAAA;AAAA;AAAA;AAAA;EAEE;;AASF;AAAA;AAAA;EACE;;;AAaF;AAAA;AAAA;AAAA;AAAA;EAEE;;AAUF;AAAA;AAAA;EACE;;;AAYJ;EACE;EACA;EACA;EACA;EAGE;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;EADA;EACA;;;AAMJ;EACE;;;AAGF;EACE;;;AALF;EACE;;;AAGF;EACE;;;AALF;EACE;;;AAGF;EACE;;;AALF;EACE;;;AAGF;EACE;;;AALF;EACE;;;AAGF;EACE;;;AALF;EACE;;;AAGF;EACE;;;AALF;EACE;;;AAGF;EACE;;;AALF;EACE;;;AAGF;EACE;;;AALF;EACE;;;AAGF;EACE;;;AAIJ;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;ACjVA;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AAOF;EACE;;;AADF;EACE;;;AADF;EACE;;;AAQF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AAQF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AAQF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AAOF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AAQA;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AzBjBJ;EACE;EACA;EACA;;;A0BrCJ;AAAA;EAEE;;;AAGF;AAAA;EAEE;;;AAGF;EACE;;;AAMA;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;ACrBJ;EACE;;;AAQE;EACE;;;AAIA;EACE;;;AANJ;EACE;;;AAIA;EACE;;;AANJ;EACE;;;AAIA;EACE;;;AANJ;EACE;;;AAIA;EACE;;;AANJ;EACE;;;AAIA;EACE;;;AANJ;EACE;;;AAIA;EACE;;;AANJ;EACE;;;AAIA;EACE;;;AANJ;EACE;;;AAIA;EACE;;;AANJ;EACE;;;AADF;EACE;;;AAIA;EACE;;;AANJ;EACE;;;AAIA;EACE;;;AANJ;EACE;;;AAIA;EACE;;;AANJ;EACE;;;AAIA;EACE;;;AANJ;EACE;;;AAIA;EACE;;;AANJ;EACE;;;AAIA;EACE;;;AANJ;EACE;;;AAIA;EACE;;;AANJ;EACE;;;AAIA;EACE;;;AANJ;EACE;;;AADF;EACE;;;AAIA;EACE;;;AANJ;EACE;;;AAIA;EACE;;;AANJ;EACE;;;AAIA;EACE;;;AANJ;EACE;;;AAIA;EACE;;;AANJ;EACE;;;AAIA;EACE;;;AANJ;EACE;;;AAIA;EACE;;;AANJ;EACE;;;AAIA;EACE;;;AANJ;EACE;;;AAIA;EACE;;;AANJ;EACE;;;ACZN;EACE;;;AAMA;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AATF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AATF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AATF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AATF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;ACVJ;EACE;;;AAMA;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;ACdJ;EACE;;;AAGF;EACE;;;AA6BE;EACE;;;AAKA;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AAMF;EACE;EACA;;;AAMF;EACE;EACA;;;AAvBJ;EACE;;;AAKA;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AAMF;EACE;EACA;;;AAMF;EACE;EACA;;;AAvBJ;EACE;;;AAKA;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AAMF;EACE;EACA;;;AAMF;EACE;EACA;;;AAvBJ;EACE;;;AAKA;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AAMF;EACE;EACA;;;AAMF;EACE;EACA;;;AAvBJ;EACE;;;AAKA;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AAMF;EACE;EACA;;;AAMF;EACE;EACA;;;AAvBJ;EACE;;;AAKA;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AAMF;EACE;EACA;;;AAMF;EACE;EACA;;;AAvBJ;EACE;;;AAKA;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AAMF;EACE;EACA;;;AAMF;EACE;EACA;;;AAvBJ;EACE;;;AAKA;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AAMF;EACE;EACA;;;AAMF;EACE;EACA;;;AAvBJ;EACE;;;AAKA;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AAMF;EACE;EACA;;;AAMF;EACE;EACA;;;AAvBJ;EACE;;;AAKA;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AAMF;EACE;EACA;;;AAMF;EACE;EACA;;;AAvBJ;EACE;;;AAKA;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AAMF;EACE;EACA;;;AAMF;EACE;EACA;;;AAvBJ;EACE;;;AAKA;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AAMF;EACE;EACA;;;AAMF;EACE;EACA;;;AAvBJ;EACE;;;AAKA;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AAMF;EACE;EACA;;;AAMF;EACE;EACA;;;AAvBJ;EACE;;;AAKA;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AAMF;EACE;EACA;;;AAMF;EACE;EACA;;;AAvBJ;EACE;;;AAKA;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AAMF;EACE;EACA;;;AAMF;EACE;EACA;;;AAvBJ;EACE;;;AAKA;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AAMF;EACE;EACA;;;AAMF;EACE;EACA;;;ACjDJ;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;A/BmRJ;E+BpRE;IACE;;EADF;IACE;;EADF;IACE;;EADF;IACE;;EADF;IACE;;EADF;IACE;;EADF;IACE;;;A/ByRJ;E+B1RE;IACE;;EADF;IACE;;EADF;IACE;;EADF;IACE;;EADF;IACE;;EADF;IACE;;EADF;IACE;;;A/BqSJ;E+BtSE;IACE;;EADF;IACE;;EADF;IACE;;EADF;IACE;;EADF;IACE;;EADF;IACE;;EADF;IACE;;;A/B2SJ;E+B5SE;IACE;;EADF;IACE;;EADF;IACE;;EADF;IACE;;EADF;IACE;;EADF;IACE;;EADF;IACE;;;A/BkUF;E+BnUA;IACE;;EADF;IACE;;EADF;IACE;;EADF;IACE;;EADF;IACE;;EADF;IACE;;EADF;IACE;;;A/B0VF;E+B3VA;IACE;;EADF;IACE;;EADF;IACE;;EADF;IACE;;EADF;IACE;;EADF;IACE;;EADF;IACE;;;AAuCJ;EACE;;;AADF;EACE;;;AADF;EACE;;;AADF;EACE;;;A/B2OF;E+BrOE;IACE;;;A/B0OJ;E+BrOE;IACE;;;A/B0OJ;E+BrOE;IACE;;;A/B0OJ;E+BrOE;IACE;;;A/B0OJ;E+BrOE;IACE;;;A/B2OF;E+BtOA;IACE;;;A/BqPF;E+BhPA;IACE;;;A/BuPF;E+BlPA;IACE;;;A/BiQF;E+B5PA;IACE;;;A/BoLJ;E+BrOE;IACE;;;A/B0OJ;E+BrOE;IACE;;;A/B0OJ;E+BrOE;IACE;;;A/B0OJ;E+BrOE;IACE;;;A/B0OJ;E+BrOE;IACE;;;A/B2OF;E+BtOA;IACE;;;A/BqPF;E+BhPA;IACE;;;A/BuPF;E+BlPA;IACE;;;A/BiQF;E+B5PA;IACE;;;A/BoLJ;E+BrOE;IACE;;;A/B0OJ;E+BrOE;IACE;;;A/B0OJ;E+BrOE;IACE;;;A/B0OJ;E+BrOE;IACE;;;A/B0OJ;E+BrOE;IACE;;;A/B2OF;E+BtOA;IACE;;;A/BqPF;E+BhPA;IACE;;;A/BuPF;E+BlPA;IACE;;;A/BiQF;E+B5PA;IACE;;;A/BoLJ;E+BrOE;IACE;;;A/B0OJ;E+BrOE;IACE;;;A/B0OJ;E+BrOE;IACE;;;A/B0OJ;E+BrOE;IACE;;;A/B0OJ;E+BrOE;IACE;;;A/B2OF;E+BtOA;IACE;;;A/BqPF;E+BhPA;IACE;;;A/BuPF;E+BlPA;IACE;;;A/BiQF;E+B5PA;IACE;;;AAKN;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;ACzKF;AAAA;EAEE;;;AAMA;AAAA;EAEE;;;AhCiRF;EgC7QE;AAAA;IAEE;;;AhCiRJ;EgC5QE;AAAA;IAEE;;;AhCgRJ;EgC3QE;AAAA;IAEE;;;AhC+QJ;EgC1QE;AAAA;IAEE;;;AhC8QJ;EgCzQE;AAAA;IAEE;;;AhC8QF;EgCzQA;AAAA;IAEE;;;AhCuRF;EgClRA;AAAA;IAEE;;;AhCwRF;EgCnRA;AAAA;IAEE;;;AhCiSF;EgC5RA;AAAA;IAEE;;;AAhEJ;AAAA;EAEE;;;AhCiRF;EgC7QE;AAAA;IAEE;;;AhCiRJ;EgC5QE;AAAA;IAEE;;;AhCgRJ;EgC3QE;AAAA;IAEE;;;AhC+QJ;EgC1QE;AAAA;IAEE;;;AhC8QJ;EgCzQE;AAAA;IAEE;;;AhC8QF;EgCzQA;AAAA;IAEE;;;AhCuRF;EgClRA;AAAA;IAEE;;;AhCwRF;EgCnRA;AAAA;IAEE;;;AhCiSF;EgC5RA;AAAA;IAEE;;;AAhEJ;AAAA;EAEE;;;AhCiRF;EgC7QE;AAAA;IAEE;;;AhCiRJ;EgC5QE;AAAA;IAEE;;;AhCgRJ;EgC3QE;AAAA;IAEE;;;AhC+QJ;EgC1QE;AAAA;IAEE;;;AhC8QJ;EgCzQE;AAAA;IAEE;;;AhC8QF;EgCzQA;AAAA;IAEE;;;AhCuRF;EgClRA;AAAA;IAEE;;;AhCwRF;EgCnRA;AAAA;IAEE;;;AhCiSF;EgC5RA;AAAA;IAEE;;;AAhEJ;AAAA;EAEE;;;AhCiRF;EgC7QE;AAAA;IAEE;;;AhCiRJ;EgC5QE;AAAA;IAEE;;;AhCgRJ;EgC3QE;AAAA;IAEE;;;AhC+QJ;EgC1QE;AAAA;IAEE;;;AhC8QJ;EgCzQE;AAAA;IAEE;;;AhC8QF;EgCzQA;AAAA;IAEE;;;AhCuRF;EgClRA;AAAA;IAEE;;;AhCwRF;EgCnRA;AAAA;IAEE;;;AhCiSF;EgC5RA;AAAA;IAEE;;;AAhEJ;AAAA;EAEE;;;AhCiRF;EgC7QE;AAAA;IAEE;;;AhCiRJ;EgC5QE;AAAA;IAEE;;;AhCgRJ;EgC3QE;AAAA;IAEE;;;AhC+QJ;EgC1QE;AAAA;IAEE;;;AhC8QJ;EgCzQE;AAAA;IAEE;;;AhC8QF;EgCzQA;AAAA;IAEE;;;AhCuRF;EgClRA;AAAA;IAEE;;;AhCwRF;EgCnRA;AAAA;IAEE;;;AhCiSF;EgC5RA;AAAA;IAEE;;;AAhEJ;AAAA;EAEE;;;AhCiRF;EgC7QE;AAAA;IAEE;;;AhCiRJ;EgC5QE;AAAA;IAEE;;;AhCgRJ;EgC3QE;AAAA;IAEE;;;AhC+QJ;EgC1QE;AAAA;IAEE;;;AhC8QJ;EgCzQE;AAAA;IAEE;;;AhC8QF;EgCzQA;AAAA;IAEE;;;AhCuRF;EgClRA;AAAA;IAEE;;;AhCwRF;EgCnRA;AAAA;IAEE;;;AhCiSF;EgC5RA;AAAA;IAEE;;;AAKN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AhCsMA;EgClMA;AAAA;IAEE;;;AhCsMF;EgCjMA;AAAA;IAEE;;;AhCqMF;EgChMA;AAAA;IAEE;;;AhCoMF;EgC/LA;AAAA;IAEE;;;AhCmMF;EgC9LA;AAAA;IAEE;;;AhCmMA;EgC9LF;AAAA;IAEE;;;AhC4MA;EgCvMF;AAAA;IAEE;;;AhC6MA;EgCxMF;AAAA;IAEE;;;AhCsNA;EgCjNF;AAAA;IAEE;;;AAIJ;AAAA;EAEE;;;AhCkIA;EgC9HA;AAAA;IAEE;;;AhCkIF;EgC7HA;AAAA;IAEE;;;AhCiIF;EgC5HA;AAAA;IAEE;;;AhCgIF;EgC3HA;AAAA;IAEE;;;AhC+HF;EgC1HA;AAAA;IAEE;;;AhC+HA;EgC1HF;AAAA;IAEE;;;AhCwIA;EgCnIF;AAAA;IAEE;;;AhCyIA;EgCpIF;AAAA;IAEE;;;AhCkJA;EgC7IF;AAAA;IAEE;;;ACvNJ;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;;;ACbF;AAUA;EtC4BE;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;;;AA0cA;EACE;IA3cF;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;;;AA0cA;EACE;IA3cF;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;;;AAmcA;AAAA;EAncA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;;;AAmcA;AAAA;EAncA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA","file":"style.css"}
|
sovereign/config_loader.py
DELETED
|
@@ -1,225 +0,0 @@
|
|
|
1
|
-
import os
|
|
2
|
-
import json
|
|
3
|
-
from enum import Enum
|
|
4
|
-
from typing import Any, Dict, Callable, Union
|
|
5
|
-
from types import ModuleType
|
|
6
|
-
import yaml
|
|
7
|
-
import jinja2
|
|
8
|
-
import requests
|
|
9
|
-
import importlib
|
|
10
|
-
from importlib.machinery import SourceFileLoader
|
|
11
|
-
from pathlib import Path
|
|
12
|
-
from pkg_resources import resource_string
|
|
13
|
-
from pydantic import BaseModel
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
class Serialization(Enum):
|
|
17
|
-
yaml = "yaml"
|
|
18
|
-
json = "json"
|
|
19
|
-
orjson = "orjson"
|
|
20
|
-
ujson = "ujson"
|
|
21
|
-
jinja = "jinja"
|
|
22
|
-
jinja2 = "jinja2"
|
|
23
|
-
string = "string"
|
|
24
|
-
raw = "raw"
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
class Protocol(Enum):
|
|
28
|
-
file = "file"
|
|
29
|
-
http = "http"
|
|
30
|
-
https = "https"
|
|
31
|
-
pkgdata = "pkgdata"
|
|
32
|
-
env = "env"
|
|
33
|
-
module = "module"
|
|
34
|
-
s3 = "s3"
|
|
35
|
-
python = "python"
|
|
36
|
-
inline = "inline"
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
jinja_env = jinja2.Environment(autoescape=True)
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
def passthrough(item: Any) -> Any:
|
|
43
|
-
return item
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
def string(item: Any) -> Any:
|
|
47
|
-
return str(item)
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
serializers: Dict[Serialization, Callable[[Any], Any]] = {
|
|
51
|
-
Serialization.yaml: yaml.safe_load,
|
|
52
|
-
Serialization.json: json.loads,
|
|
53
|
-
Serialization.jinja: jinja_env.from_string,
|
|
54
|
-
Serialization.jinja2: jinja_env.from_string,
|
|
55
|
-
Serialization.string: string,
|
|
56
|
-
Serialization.raw: passthrough,
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
try:
|
|
60
|
-
import ujson
|
|
61
|
-
|
|
62
|
-
serializers[Serialization.ujson] = ujson.loads
|
|
63
|
-
jinja_env.policies["json.dumps_function"] = ujson.dumps
|
|
64
|
-
except ImportError:
|
|
65
|
-
# This lambda will raise an exception when the serializer is used; otherwise we should not crash
|
|
66
|
-
serializers[Serialization.ujson] = lambda *a, **kw: raise_(
|
|
67
|
-
ImportError("ujson must be installed to use in config_loaders")
|
|
68
|
-
)
|
|
69
|
-
|
|
70
|
-
try:
|
|
71
|
-
import orjson
|
|
72
|
-
|
|
73
|
-
serializers[Serialization.orjson] = orjson.loads
|
|
74
|
-
|
|
75
|
-
# orjson.dumps returns bytes, so we have to wrap & decode it
|
|
76
|
-
def orjson_dumps(*args: Any, **kwargs: Any) -> Any:
|
|
77
|
-
try:
|
|
78
|
-
representation = orjson.dumps(*args, **kwargs)
|
|
79
|
-
except TypeError:
|
|
80
|
-
raise TypeError(f"Unable to dump objects using ORJSON: {args}, {kwargs}")
|
|
81
|
-
try:
|
|
82
|
-
return representation.decode()
|
|
83
|
-
except Exception as e:
|
|
84
|
-
raise e.__class__(
|
|
85
|
-
f"Unable to decode ORJSON: {representation}. Original exception: {e}" # type: ignore
|
|
86
|
-
)
|
|
87
|
-
|
|
88
|
-
jinja_env.policies["json.dumps_function"] = orjson_dumps
|
|
89
|
-
jinja_env.policies["json.dumps_kwargs"] = {"option": orjson.OPT_SORT_KEYS}
|
|
90
|
-
except ImportError:
|
|
91
|
-
# This lambda will raise an exception when the serializer is used; otherwise we should not crash
|
|
92
|
-
serializers[Serialization.orjson] = lambda *a, **kw: raise_(
|
|
93
|
-
ImportError("orjson must be installed to use in config_loaders")
|
|
94
|
-
)
|
|
95
|
-
|
|
96
|
-
try:
|
|
97
|
-
import boto3
|
|
98
|
-
except ImportError:
|
|
99
|
-
boto3 = None
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
class Loadable(BaseModel):
|
|
103
|
-
protocol: Protocol = Protocol.http
|
|
104
|
-
serialization: Serialization = Serialization.yaml
|
|
105
|
-
path: str
|
|
106
|
-
|
|
107
|
-
def load(self, default: Any = None) -> Any:
|
|
108
|
-
try:
|
|
109
|
-
return loaders[self.protocol](self.path, self.serialization)
|
|
110
|
-
except Exception:
|
|
111
|
-
if default is not None:
|
|
112
|
-
return default
|
|
113
|
-
raise
|
|
114
|
-
|
|
115
|
-
@staticmethod
|
|
116
|
-
def from_legacy_fmt(s: str) -> "Loadable":
|
|
117
|
-
if "://" not in s:
|
|
118
|
-
return Loadable(
|
|
119
|
-
protocol=Protocol.inline, serialization=Serialization.string, path=s
|
|
120
|
-
)
|
|
121
|
-
try:
|
|
122
|
-
scheme, path = s.split("://")
|
|
123
|
-
except ValueError:
|
|
124
|
-
raise ValueError(s)
|
|
125
|
-
try:
|
|
126
|
-
p, s = scheme.split("+")
|
|
127
|
-
except ValueError:
|
|
128
|
-
p, s = scheme, "yaml"
|
|
129
|
-
|
|
130
|
-
proto: Protocol = Protocol(p)
|
|
131
|
-
serialization: Serialization = Serialization(s)
|
|
132
|
-
if proto in (Protocol.python, Protocol.module):
|
|
133
|
-
serialization = Serialization.raw
|
|
134
|
-
if proto in (Protocol.http, Protocol.https):
|
|
135
|
-
path = "://".join([proto.value, path])
|
|
136
|
-
|
|
137
|
-
return Loadable(
|
|
138
|
-
protocol=proto,
|
|
139
|
-
serialization=serialization,
|
|
140
|
-
path=path,
|
|
141
|
-
)
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
def raise_(e: Exception) -> Exception:
|
|
145
|
-
raise e
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
def load_file(path: str, loader: Serialization) -> Any:
|
|
149
|
-
with open(path) as f:
|
|
150
|
-
contents = f.read()
|
|
151
|
-
try:
|
|
152
|
-
return serializers[loader](contents)
|
|
153
|
-
except FileNotFoundError:
|
|
154
|
-
raise FileNotFoundError(f"Unable to load {path}")
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
def load_package_data(path: str, loader: Serialization) -> Any:
|
|
158
|
-
pkg, pkg_file = path.split(":")
|
|
159
|
-
data = resource_string(pkg, pkg_file)
|
|
160
|
-
if isinstance(data, str):
|
|
161
|
-
data = data.decode()
|
|
162
|
-
return serializers[loader](data)
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
def load_http(path: str, loader: Serialization) -> Any:
|
|
166
|
-
response = requests.get(path)
|
|
167
|
-
response.raise_for_status()
|
|
168
|
-
data = response.text
|
|
169
|
-
return serializers[loader](data)
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
def load_env(variable: str, loader: Serialization = Serialization.raw) -> Any:
|
|
173
|
-
data = os.getenv(variable)
|
|
174
|
-
try:
|
|
175
|
-
return serializers[loader](data)
|
|
176
|
-
except AttributeError as e:
|
|
177
|
-
raise AttributeError(
|
|
178
|
-
f"Unable to read environment variable {variable}: {repr(e)}"
|
|
179
|
-
)
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
def load_module(name: str, _: Serialization = Serialization.raw) -> Any:
|
|
183
|
-
if ":" in name:
|
|
184
|
-
mod, fn = name.rsplit(":", maxsplit=1)
|
|
185
|
-
else:
|
|
186
|
-
mod, fn = name, ""
|
|
187
|
-
imported = importlib.import_module(mod)
|
|
188
|
-
if fn != "":
|
|
189
|
-
return getattr(imported, fn)
|
|
190
|
-
return imported
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
def load_s3(path: str, loader: Serialization = Serialization.raw) -> Any:
|
|
194
|
-
if isinstance(boto3, type(None)):
|
|
195
|
-
raise ImportError(
|
|
196
|
-
"boto3 must be installed to load S3 paths. Use ``pip install sovereign[boto]``"
|
|
197
|
-
)
|
|
198
|
-
bucket, key = path.split("/", maxsplit=1)
|
|
199
|
-
s3 = boto3.client("s3")
|
|
200
|
-
response = s3.get_object(Bucket=bucket, Key=key)
|
|
201
|
-
data = "".join([chunk.decode() for chunk in response["Body"]])
|
|
202
|
-
return serializers[loader](data)
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
def load_python(path: str, _: Serialization = Serialization.raw) -> ModuleType:
|
|
206
|
-
p = str(Path(path).absolute())
|
|
207
|
-
loader = SourceFileLoader(p, path=p)
|
|
208
|
-
return loader.load_module(p)
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
def load_inline(path: str, _: Serialization = Serialization.raw) -> Any:
|
|
212
|
-
return str(path)
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
loaders: Dict[Protocol, Callable[[str, Serialization], Union[str, Any]]] = {
|
|
216
|
-
Protocol.file: load_file,
|
|
217
|
-
Protocol.pkgdata: load_package_data,
|
|
218
|
-
Protocol.http: load_http,
|
|
219
|
-
Protocol.https: load_http,
|
|
220
|
-
Protocol.env: load_env,
|
|
221
|
-
Protocol.module: load_module,
|
|
222
|
-
Protocol.s3: load_s3,
|
|
223
|
-
Protocol.python: load_python,
|
|
224
|
-
Protocol.inline: load_inline,
|
|
225
|
-
}
|
sovereign/discovery.py
DELETED
|
@@ -1,175 +0,0 @@
|
|
|
1
|
-
"""
|
|
2
|
-
Discovery
|
|
3
|
-
---------
|
|
4
|
-
|
|
5
|
-
Functions used to render and return discovery responses to Envoy proxies.
|
|
6
|
-
|
|
7
|
-
The templates are configurable. `todo See ref:Configuration#Templates`
|
|
8
|
-
"""
|
|
9
|
-
from enum import Enum
|
|
10
|
-
from typing import List, Dict, Any, Optional
|
|
11
|
-
|
|
12
|
-
import yaml
|
|
13
|
-
from yaml.parser import ParserError, ScannerError # type: ignore
|
|
14
|
-
from starlette.exceptions import HTTPException
|
|
15
|
-
|
|
16
|
-
try:
|
|
17
|
-
import sentry_sdk
|
|
18
|
-
|
|
19
|
-
SENTRY_INSTALLED = True
|
|
20
|
-
except ImportError:
|
|
21
|
-
SENTRY_INSTALLED = False
|
|
22
|
-
|
|
23
|
-
from sovereign import XDS_TEMPLATES, config, logs, template_context
|
|
24
|
-
from sovereign.utils.version_info import compute_hash
|
|
25
|
-
from sovereign.schemas import XdsTemplate, DiscoveryRequest, ProcessedTemplate
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
try:
|
|
29
|
-
default_templates = XDS_TEMPLATES["default"]
|
|
30
|
-
except KeyError:
|
|
31
|
-
raise KeyError(
|
|
32
|
-
"Your configuration should contain default templates. For more details, see "
|
|
33
|
-
"https://vsyrakis.bitbucket.io/sovereign/docs/html/guides/tutorial.html#create-templates "
|
|
34
|
-
)
|
|
35
|
-
|
|
36
|
-
cache_strategy = config.source_config.cache_strategy
|
|
37
|
-
|
|
38
|
-
# Create an enum that bases all the available discovery types off what has been configured
|
|
39
|
-
discovery_types = (_type for _type in sorted(XDS_TEMPLATES["__any__"].keys()))
|
|
40
|
-
discovery_types_base: Dict[str, str] = {t: t for t in discovery_types}
|
|
41
|
-
# TODO: this needs to be typed somehow, but I have no idea how
|
|
42
|
-
DiscoveryTypes = Enum("DiscoveryTypes", discovery_types_base) # type: ignore
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
def select_template(
|
|
46
|
-
request: DiscoveryRequest,
|
|
47
|
-
discovery_type: str,
|
|
48
|
-
templates: Optional[Dict[str, Dict[str, XdsTemplate]]] = None,
|
|
49
|
-
) -> XdsTemplate:
|
|
50
|
-
if templates is None:
|
|
51
|
-
templates = XDS_TEMPLATES
|
|
52
|
-
version = request.envoy_version
|
|
53
|
-
selection = "default"
|
|
54
|
-
for v in templates.keys():
|
|
55
|
-
if version.startswith(v):
|
|
56
|
-
selection = v
|
|
57
|
-
selected_version = templates[selection]
|
|
58
|
-
try:
|
|
59
|
-
resource_type = discovery_type
|
|
60
|
-
return selected_version[resource_type]
|
|
61
|
-
except KeyError:
|
|
62
|
-
raise KeyError(
|
|
63
|
-
f"Unable to get {discovery_type} for template "
|
|
64
|
-
f'version "{selection}". Envoy client version: {version}'
|
|
65
|
-
)
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
def response(request: DiscoveryRequest, xds_type: str) -> ProcessedTemplate:
|
|
69
|
-
"""
|
|
70
|
-
A Discovery **Request** typically looks something like:
|
|
71
|
-
|
|
72
|
-
.. code-block:: json
|
|
73
|
-
|
|
74
|
-
{
|
|
75
|
-
"version_info": "0",
|
|
76
|
-
"node": {
|
|
77
|
-
"cluster": "T1",
|
|
78
|
-
"build_version": "<revision hash>/<version>/Clean/RELEASE",
|
|
79
|
-
"metadata": {
|
|
80
|
-
"auth": "..."
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
When we receive this, we give the client the latest configuration via a
|
|
86
|
-
Discovery **Response** that looks something like this:
|
|
87
|
-
|
|
88
|
-
.. code-block:: json
|
|
89
|
-
|
|
90
|
-
{
|
|
91
|
-
"version_info": "abcdef1234567890",
|
|
92
|
-
"resources": []
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
The version_info is derived from :func:`sovereign.discovery.version_hash`
|
|
96
|
-
|
|
97
|
-
:param request: An envoy Discovery Request
|
|
98
|
-
:param xds_type: what type of XDS template to use when rendering
|
|
99
|
-
:return: An envoy Discovery Response
|
|
100
|
-
"""
|
|
101
|
-
template: XdsTemplate = select_template(request, xds_type)
|
|
102
|
-
context = dict(
|
|
103
|
-
discovery_request=request,
|
|
104
|
-
host_header=request.desired_controlplane,
|
|
105
|
-
resource_names=request.resources,
|
|
106
|
-
**template_context.get_context(request, template),
|
|
107
|
-
)
|
|
108
|
-
content = template(**context)
|
|
109
|
-
|
|
110
|
-
# Deserialize YAML output from Jinja2
|
|
111
|
-
if not template.is_python_source:
|
|
112
|
-
if not isinstance(content, str):
|
|
113
|
-
raise RuntimeError(
|
|
114
|
-
f"Attempting to deserialize potential non-string data: {content}"
|
|
115
|
-
)
|
|
116
|
-
content = deserialize_config(content)
|
|
117
|
-
|
|
118
|
-
# Early return if the template is identical
|
|
119
|
-
config_version = compute_hash(content)
|
|
120
|
-
if config_version == request.version_info:
|
|
121
|
-
return ProcessedTemplate(version_info=config_version, resources=[])
|
|
122
|
-
|
|
123
|
-
if not isinstance(content, dict):
|
|
124
|
-
raise RuntimeError(f"Attempting to filter unstructured data: {content}")
|
|
125
|
-
resources = filter_resources(content["resources"], request.resources)
|
|
126
|
-
return ProcessedTemplate(resources=resources, version_info=config_version)
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
def deserialize_config(content: str) -> Dict[str, Any]:
|
|
130
|
-
try:
|
|
131
|
-
envoy_configuration = yaml.safe_load(content)
|
|
132
|
-
except (ParserError, ScannerError) as e:
|
|
133
|
-
logs.queue_log_fields(
|
|
134
|
-
error=repr(e),
|
|
135
|
-
YAML_CONTEXT=e.context,
|
|
136
|
-
YAML_CONTEXT_MARK=e.context_mark,
|
|
137
|
-
YAML_NOTE=e.note,
|
|
138
|
-
YAML_PROBLEM=e.problem,
|
|
139
|
-
YAML_PROBLEM_MARK=e.problem_mark,
|
|
140
|
-
)
|
|
141
|
-
|
|
142
|
-
if SENTRY_INSTALLED and config.sentry_dsn:
|
|
143
|
-
sentry_sdk.capture_exception(e)
|
|
144
|
-
|
|
145
|
-
raise HTTPException(
|
|
146
|
-
status_code=500,
|
|
147
|
-
detail="Failed to load configuration, there may be "
|
|
148
|
-
"a syntax error in the configured templates. "
|
|
149
|
-
"Please check Sentry if you have configured Sentry DSN",
|
|
150
|
-
)
|
|
151
|
-
if not isinstance(envoy_configuration, dict):
|
|
152
|
-
raise RuntimeError(
|
|
153
|
-
f"Deserialized configuration is of unexpected format: {envoy_configuration}"
|
|
154
|
-
)
|
|
155
|
-
return envoy_configuration
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
def filter_resources(
|
|
159
|
-
generated: List[Dict[str, Any]], requested: List[str]
|
|
160
|
-
) -> List[Dict[str, Any]]:
|
|
161
|
-
"""
|
|
162
|
-
If Envoy specifically requested a resource, this removes everything
|
|
163
|
-
that does not match the name of the resource.
|
|
164
|
-
If Envoy did not specifically request anything, every resource is retained.
|
|
165
|
-
"""
|
|
166
|
-
return [resource for resource in generated if resource_name(resource) in requested]
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
def resource_name(resource: Dict[str, Any]) -> str:
|
|
170
|
-
name = resource.get("name") or resource.get("cluster_name")
|
|
171
|
-
if isinstance(name, str):
|
|
172
|
-
return name
|
|
173
|
-
raise KeyError(
|
|
174
|
-
f"Failed to determine the name or cluster_name of the following resource: {resource}"
|
|
175
|
-
)
|